2017-11-02 5 views
-3

UIからボタンを押すと、実行中のプロセスが現在のループ実行を完了した後でその実行を停止するようなC#の機能はありますか?例えばC#の実行が完了したがスレッドの実行が完了した後

while (something) 
{ 
    // do something 
} 

while (something) 
{ 
    // do something 
} 

ループが実行中で、その後、ループの実行とは、全体の実行を停止する必要がありながら、それが完了する必要があり送られるUI「ストップ実行」からであるしつつ、第1の場合。

+0

さて、確かに。 CancellationTokenを使用していない場合はおそらく間違っているでしょう。 –

答えて

1

このような意味ですか?

private volatile bool _stop = false; 

void OnCancelClick() 
{ 
    _stop = true; 
} 

void WorkerProcess() //In separate thread 
{ 
    while (!_stop) 
    { 
     // do something 
    } 
} 

何百万もの方法があります。これはおそらく理解しやすいでしょう。

+0

バックグラウンドから既にC#コードを実行していて、キャンセルボタンが押された場合は実行を停止する必要がありますか? –

+1

それを試してみてはいかがですか? –

関連する問題