バックグラウンドスレッドで呼び出す方法
-
05-07-2019 - |
質問
バックグラウンドスレッドでメソッドを呼び出す方法はありますか?
BackgroundWorker / Creating a threadまたはThreadPool.QueueUserWorkItemなどを使用していますが、それは私が探している答えではありません
たとえばSCSFには、メソッドがバックグラウンドまたはUIスレッドで呼び出されることを保証する属性があります
小さなアプリでも同様のことをしたいので、実用的な例を探しています
解決
BackgroundWorker があなたに合うと思うニーズ。 Winformアプリでバックグラウンドで操作を実行できます。それらの記事には実例があります。 :)
他のヒント
バックグラウンドスレッドでメソッドを呼び出す方法は多数あります。
メソッドの実行中にブロックしますか?メソッドから結果を返しますか?この結果をUIに表示しますか?メソッドは一度だけ呼び出されますか?必要に応じて何度も?ループで何度も?非同期に?アプリが終了した場合、バックグラウンドスレッドを継続する必要がありますか?これらの質問に対する答えは、どの方法を使用すべきかを示します。
さまざまなスレッドメッセージパッシングメソッドの概要は、優れた記事 The Code Projectで。
スレッドプールはすでにバックグラウンドスレッドを使用しています。ただし、これらのスレッドを制御することはできません。制御したい場合は、System.Threading.Threadを使用する必要があります。これにより、スレッドの作成(バックグラウンド、フォアグラウンドなど)および管理(サスペンド、レジューム、スリープなど)をより詳細に制御できます。
所属していません StackOverflow