以下のコードのようなコードを使用すると、作成された新しいスレッドは、関数が戻った後に自動的に終了しますか?
new Thread(() =>
{
function();
}).Start();
私はスレッド化にかなり慣れていないので、疑問に思いました。
以下のコードのようなコードを使用すると、作成された新しいスレッドは、関数が戻った後に自動的に終了しますか?
new Thread(() =>
{
function();
}).Start();
私はスレッド化にかなり慣れていないので、疑問に思いました。
それは問題ありません...実行可能ファイルが終了する前にスレッドが完了しないことが懸念される場合は、次のことが必要になる場合があります。
new Thread(() =>
{
function();
}){IsBackground = true}.Start();
バックグラウンド スレッドがアプリの終了を妨げることはありません。
はい、関数が完了するとスレッドは終了しますが、関数内で使用する必要があるパラメーターがない限り、そのように開始しません。私はただやります:
new Thread(function).Start();
スレッドを管理することがベストプラクティスと考えられていますが、その特定のスレッドの結果/状態に関心がなく、キャンセルなどに対処する必要がない場合は、何をしても問題ありません。
自分が行っていることに専用のスレッドが必要かどうかを検討する価値があります。実行しているコードが比較的小さい場合は、代わりにTPLまたはQueueUserWorkItemを介して ThreadPool を利用することを検討してください。