我有一个函数(称之为Process()),它执行一些处理。我想在一个点上调用它,同时启动一个计时器。然后我只想在经过100秒后调用下一个语句(当然功能已经完成)。我不想睡100秒,因为睡眠表明处理器正在等待 - 我希望处理函数在计时器滴答作响时运行。功能运行时的C#定时器
我不知道我应该用什么。有人说使用任务。有什么建议么?
我有一个函数(称之为Process()),它执行一些处理。我想在一个点上调用它,同时启动一个计时器。然后我只想在经过100秒后调用下一个语句(当然功能已经完成)。我不想睡100秒,因为睡眠表明处理器正在等待 - 我希望处理函数在计时器滴答作响时运行。功能运行时的C#定时器
我不知道我应该用什么。有人说使用任务。有什么建议么?
int Ticks = Environment.TickCount;
ReallyBigFunction();
if(Environment.TickCount - Ticks > 100*1000)
{
// The function took more than 100 seconds
}
我建议在另一个线程上关闭该功能,然后在主线程中休眠100秒。当主线程再次唤醒时,您可以检查函数线程是否已完成并将其重新加入主程序流。
如果你仍然想的过程中运行,你可能要开始一个新的线程,将等待你所需要的时间:
ThreadStart start = delegate()
{
Thread.Sleep(100000);
Dispatcher.Invoke(DispatcherPriority.Normal,
new Action(ThreadDoSomething)); //The function who will execute what you want to do.
};
new Thread(start).Start();
注:目前的代码就可以访问到该接口。