私はbackgroundworkerについて質問があります。C#Stop BackgroundWorker
私はバックグラウンドワーカーで無限ループをしています。どうすればそれを止めることができますか?
私はbackgroundworkerについて質問があります。C#Stop BackgroundWorker
私はバックグラウンドワーカーで無限ループをしています。どうすればそれを止めることができますか?
無限ループに変更してください。
BackgroundWorker
には、キャンセルのサポートが組み込まれています。バックグラウンドワーカーコールBackgroundWorker.CancelAsync
を取り消すには
CancelAsyncは保留中のバックグラウンド操作を終了する要求を送信し、CancellationPendingプロパティをtrueに設定します。
CancelAsyncを呼び出すと、ワーカーメソッドには実行を停止して終了する機会があります。作業者コードは、CancellationPendingプロパティが定期的にtrueに設定されているかどうかを確認する必要があります。あなたのワーカースレッドで、この無限ループを持っている場合
したがって、たとえば:キャンセルはあなたにも設定する必要が動作するためには
while (!backgroundWorker.CancellationPending)
{
...
}
:
while (true)
{
...
}
その後、あなたはそれを変更することができますプロパティBackgroundWorker.WorkerSupportsCancellation
〜true
。これはデザイナーで行うことができます。
私たちは問題が何であるかについてより多くの洞察力を持つことができるように、作業員のコードを記入してください。 (コードブロックを削除して、ワーカーを初期化する場所、ワーカーが何をしているのか、現在停止していることを示す場合でも)。 –