繁体   English   中英

函数运行时的C#计时器

[英]C# timer while function is running

我有一个函数(称它为Process())可以进行一些处理。 我想一次调用它,同时启动一个计时器。 然后,我仅在经过100秒(当然,该函数已经完成)之后才在函数之后调用下一条语句。 我不想睡​​眠100秒,因为睡眠表明处理器正在等待-我希望在计时器计时时运行处理功能。

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

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

注意:当前代码将使您可以访问该界面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM