Ian*_*dle 2 c# methods multithreading timer
[控制台应用]
我想在计时器上有一个方法(Thread.Sleep)并在它旁边运行另一个方法,等待用户的响应.如果计时器在用户可以响应(ReadKey)之前耗尽,那么它们将失去生命.
简而言之,我怎样才能在计时器上安装ReadKey?
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)
| 归档时间: |
|
| 查看次数: |
443 次 |
| 最近记录: |