2016-08-25 11 views
1

ループの中間反復処理(whileステートメントの長い一連のコマンド中の任意の時点)を一時停止する必要があります。イベントハンドラを使用して反復の終わりに一時停止する方法を理解していますが、一連のコマンドで同様の効果を得る方法は不明です。ループの中間反復を一時停止する方法

明確にするために例:

Thread 1 : 

    while (true) 
    { 
    // commands 
    } 

    Thread 2 : 

    Console.ReadLine(); 

//if 1 is pressed the first thread (Thread 1) must immediately pause. 

任意の助けを大幅に高く評価されるだろう。 P.S私は初心者なので詳細な説明は非常に貴重です。

+0

問題の説明 – Vikrant

答えて

3

コマンドのシーケンス中に同様の効果を得る方法がわかりません。

簡単に言えば、あなたはしないでください。どのようなコードがいつ実行されているのか分からない限り、中断しないでください。もちろん、そのコードが同じことを呼び出すためにを呼び出すならば、 "流れの途中でイベントハンドラを使用して反復終了時に一時停止する方法を理解している間に"論理的には、それはの実行コードです制御コードではなく、を決定してください。任意のコードを一時停止することは、物事を壊すのに最適な方法です。そのため、Thread.Suspend has been deprecatedです。

しかしこのは完全に有効である:ここ

while (true) 
{ 
    ElectivePauseIfNeeded(); 
    // ... some commands 
    ElectivePauseIfNeeded(); 
    // ... some more commands 
} 

ポイントは、一時停止しても安全であるときを決定するループではなく、外部のコードであることです。

関連する問題