假设某个应用程序有一个方法名称PrintAsterisk(),它会在屏幕上连续打印星号。 该方法在与用户界面分开的Task上运行。 当用户按下Enter键时,我需要确保应用程序停止在屏幕上打印星号。
如何在控制台中按Enter键取消正在运行的任务?
以下是我简化的方法:
static void PrintAsterisk() {
while (true) {
Thread.Sleep(1000);
Console.Write("*");
}
}
答案 0 :(得分:2)
取决于您如何创建线程,您可以将CancellationToken
传递给它。在线程中运行的内部方法只是检查该令牌是否有取消请求,如果是,请中断您的方法。
https://msdn.microsoft.com/en-us/library/system.threading.cancellationtoken(v=vs.110).aspx