san*_*art 21 c# multithreading wait
我希望我的方法等待大约500毫秒,然后检查是否有一些标志已经改变.如何在不阻止我的其他应用程序的情况下完成此操作?
小智 30
Thread.Sleep(500)
将强制当前线程等待500ms.它可以工作,但如果您的整个应用程序在一个线程上运行,那么它不是您想要的.
在这种情况下,你会想要使用a Timer
,如下所示:
using System.Timers;
void Main()
{
Timer t = new Timer();
t.Interval = 500; // In milliseconds
t.AutoReset = false; // Stops it from repeating
t.Elapsed += new ElapsedEventHandler(TimerElapsed);
t.Start();
}
void TimerElapsed(object sender, ElapsedEventArgs e)
{
Console.WriteLine("Hello, world!");
}
Run Code Online (Sandbox Code Playgroud)
AutoReset
如果您希望计时器重复,您可以设置为true(或根本不设置).