现在我已经
了 if blocker then
Thread.Sleep(5000)
do something
它在while圈子中运行,所以我的整个应用程序正在冻结。对我来说,在主应用程序线程中执行某些操作也很重要,这就是我不创建新内容的原因。
我认为我需要创建临时Timer,添加已发生的事件,处理它然后做一些事情,但我只是想知道是否有一些简单的解决方案,我不需要“重新发明一个自行车“?
答案 0 :(得分:2)
我会做这样的事情:
private static Timer _timer;
static void Main(string[] args)
{
_timer = new Timer();
_timer.Elapsed += TimeEvent;
_timer.Interval = 5000;
_timer.Start();
while (Console.Read() != 'q')
{
;
}
}
public static void TimeEvent(object source, ElapsedEventArgs e)
{
Console.Write("Time event!");
_timer.Stop();
}
答案 1 :(得分:1)
你不必重新发明轮子:
// create a timer that waits 10 seconds and start it
Timer timer = new Timer(10 * 1000);
timer.Elapsed += this.TimerElapsed;
timer.Start();
public void TimerElapsed(object o, ElapsedEventArgs args)
{
MessageBox.Show("Timer has elapsed");
}
答案 2 :(得分:0)
您可以创建一个可以传递问题的课程。并通过一个线程调用它的方法。 并且在该课程中你可以制作活动,所以当课程结束时,它会引发一个事件,你的应用程序就会知道这项工作已经完成。