函数运行时的C#计时器
我有一个函数(称之为Process())进行一些处理。我想在某个时间点调用它,同时启动计时器。然后,我只想在100秒后调用函数后的下一个语句(当然,函数已经完成)。我不想睡眠100秒,因为睡眠表明处理器只是在等待——我希望处理功能在计时器滴答作响时运行函数运行时的C#计时器,c#,timer,task,C#,Timer,Task,我有一个函数(称之为Process())进行一些处理。我想在某个时间点调用它,同时启动计时器。然后,我只想在100秒后调用函数后的下一个语句(当然,函数已经完成)。我不想睡眠100秒,因为睡眠表明处理器只是在等待——我希望处理功能在计时器滴答作响时运行 我不知道该用什么。有人说使用任务。有什么建议吗?我建议在另一个线程上关闭函数,然后在主线程上休眠100秒。当主线程再次唤醒时,您可以检查函数线程是否已完成,并将其重新加入主程序流。我建议在另一个线程上关闭函数,然后在主线程上休眠100秒。当主线程
我不知道该用什么。有人说使用任务。有什么建议吗?我建议在另一个线程上关闭函数,然后在主线程上休眠100秒。当主线程再次唤醒时,您可以检查函数线程是否已完成,并将其重新加入主程序流。我建议在另一个线程上关闭函数,然后在主线程上休眠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();
注意:当前代码将允许您访问该界面。如果您仍希望进程运行,您可能需要启动一个新线程,等待所需的时间:
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();
int Ticks = Environment.TickCount;
ReallyBigFunction();
if(Environment.TickCount - Ticks > 100*1000)
{
// The function took more than 100 seconds
}
注意:当前代码将允许您访问该界面
int Ticks = Environment.TickCount;
ReallyBigFunction();
if(Environment.TickCount - Ticks > 100*1000)
{
// The function took more than 100 seconds
}