FreeBASIC マニュアルのトップに戻る

FreeBASIC ThreadDetach

目次→実行時ライブラリー参考→多重スレッド化サポートTHREADCREATE←オリジナル・サイト

THREADDETACH 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

スレッドが終了するのを待たずに、スレッド・ハンドルを解放します。

構文:
Declare Sub ThreadDetach ( Byval id As Any Ptr )

用法:
#include "fbthread.bi"
ThreadDetach( id )

パラメタ:
id
ThreadCreate または ThreadCall によって作成されたスレッドの Any Ptr ハンドル

記述:
ThreadDetach は、ThreadCreate または ThreadCall によって返されたスレッド・ハンドルに関連した資源を解放します。
スレッド・ハンドルは ThreadDetach によって破壊され、これ以上使うことができません。
ThreadWait と異なり、ThreadDetach は、スレッドが終了するのを待ちません。そして、スレッドは、独立して実行を継続します。
スレッドが終了すれば、全ての割り当てられた資源は、解放されます。

メモリリークを避けるために、スレッドを終了させる安全な方法は、スレッドが終了する必要があることを常に通知してから、ThreadDetach が以前に呼び出された場合を除いて、そのスレッドで ThreadWait を呼び出すことです。

注意: ThreadDetach は、スレッドハンドルを破壊するため、ThreadWait はスレッドの終了をチェックできなくなります。さらに、ThreadWait の使用も予測できなくなります(プログラムがクラッシュする可能性があります)。
ThreadWaitThreadDetach は、排他的に使わなければなりません。
しかし、ミューテックス条件変数 は、分離されたスレッドでも使用できます。

例:
#include "fbthread.bi"

Sub mythread( ByVal param As Any Ptr )
    Print "hi!"
End Sub

Dim As Any Ptr thread = ThreadCreate( @mythread )
ThreadDetach( thread )
'' or
ThreadDetach( ThreadCreate( @mythread ) )

Sleep

方言差:
プラットホーム差:
QBからの違い:
参照:
多重スレッド化サポート に戻る
←リンク元に戻る プログラム開発関連に戻る
ページ歴史:2021-09-04 01:00:04
日本語翻訳:WATANABE Makoto、原文著作者:DkLwikki

ホームページのトップに戻る

表示-非営利-継承