バックグラウンドスレッドでメソッドを呼び出す方法はありますか?
私はBackgroundWorker/スレッドの作成またはThreadPool.QueueUserWorkItemなどを使用していることを知っていますが、それは私が探している答えではありません
たとえば、SCSFには、メソッドがバックグラウンドまたはUIスレッドで呼び出されるようにするための属性があります。
小さなアプリでも同様のことをしたいのですが、実用的な例を探しています
バックグラウンドスレッドでメソッドを呼び出す方法はありますか?
私はBackgroundWorker/スレッドの作成またはThreadPool.QueueUserWorkItemなどを使用していることを知っていますが、それは私が探している答えではありません
たとえば、SCSFには、メソッドがバックグラウンドまたはUIスレッドで呼び出されるようにするための属性があります。
小さなアプリでも同様のことをしたいのですが、実用的な例を探しています
BackgroundWorkerはあなたのニーズに合うと思います。これにより、Winformアプリのバックグラウンドで操作を実行できます。それらの記事には実例があります。:)
バックグラウンドスレッドでメソッドを呼び出す方法はたくさんあります。
メソッドの実行中にブロックしますか?メソッドから結果を返しますか?この結果をUIに表示しますか?メソッドは1回だけ呼び出されますか?何度も、必要に応じて?ループで何度も?非同期ですか?アプリが終了した場合、バックグラウンドスレッドを続行する必要がありますか?これらの質問への回答は、どの方法を使用すべきかを教えてくれます。
The Code Projectのすばらしい記事から、さまざまなスレッドメッセージパッシングメソッドの概要を入手できます。
スレッドプールはすでにバックグラウンドスレッドを使用しています。ただし、これらのスレッドを制御することはできません。制御が必要な場合は、System.Threading.Threadを使用する必要があります。これにより、スレッドの作成方法(バックグラウンド、フォアグラウンドなど)と管理方法(サスペンド、再開、スリープなど)をより細かく制御できます。