2011-12-01 103 views
1

我有一个函数(称之为Process()),它执行一些处理。我想在一个点上调用它,同时启动一个计时器。然后我只想在经过100秒后调用下一个语句(当然功能已经完成)。我不想睡​​100秒,因为睡眠表明处理器正在等待 - 我希望处理函数在计时器滴答作响时运行。功能运行时的C#定时器

我不知道我应该用什么。有人说使用任务。有什么建议么?

回答

1
int Ticks = Environment.TickCount; 

ReallyBigFunction(); 

if(Environment.TickCount - Ticks > 100*1000) 
{ 
    // The function took more than 100 seconds 
} 
0

我建议在另一个线程上关闭该功能,然后在主线程中休眠100秒。当主线程再次唤醒时,您可以检查函数线程是否已完成并将其重新加入主程序流。

0

如果你仍然想的过程中运行,你可能要开始一个新的线程,将等待你所需要的时间:

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(); 

注:目前的代码就可以访问到该接口。