C# - 如何"强制退出"一种方法

Ian*_*dle 2 c# methods multithreading timer

[控制台应用]

我想在计时器上有一个方法(Thread.Sleep)并在它旁边运行另一个方法,等待用户的响应.如果计时器在用户可以响应(ReadKey)之前耗尽,那么它们将失去生命.

简而言之,我怎样才能在计时器上安装ReadKey?

Hen*_*man 5

Console.ReadKey() 阻止,所以你不能使用它.

你可以循环使用Console.KeyAvailable()Thread.Sleep().无需计时器.

var lastKeyTime = DateTime.Now;
...
while (true)
{
   if (Console.KeyAvailable())
   {
      lastKeyTime = DateTime.Now;
      // Read and process key
   }
   else
   {
      if (DateTime.Now - lastKeyTime  > timeoutSpan)
      {
         lastKeyTime = DateTime.Now;
         // lose a live
      }
   }
   Thread.Sleep(50);  // from 1..500 will work
}
Run Code Online (Sandbox Code Playgroud)