アプリケーションに、画面にアスタリスクを連続して出力するメソッド名PrintAsterisk()があるとします。このメソッドは、ユーザーインターフェイスとは別のタスクで実行されます。ユーザーがEnterキーを押したときに、アプリケーションが画面にアスタリスクを出力しないようにする必要があります。
コンソールでEnterキーを押して実行中のタスクをキャンセルするにはどうすればよいですか?
以下は、単純化された私の方法です。
static void PrintAsterisk() {
while (true) {
Thread.Sleep(1000);
Console.Write("*");
}
}
スレッドの作成方法に応じて、スレッドに渡すことができますCancellationToken
。スレッドで実行された内部メソッドは、そのトークンにキャンセル要求があるかどうかを確認し、ある場合はメソッドを中断します。
https://msdn.microsoft.com/en-us/library/system.threading.cancellationtoken(v=vs.110).aspx
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加