我该如何派遣代码在以后运行?是这样的:C#调度代码在稍后运行?
ThreadPool.QueueUserWorkItem(callback, TimeSpan.FromSeconds(1)); // call callback() roughly one second from now
我该如何派遣代码在以后运行?是这样的:C#调度代码在稍后运行?
ThreadPool.QueueUserWorkItem(callback, TimeSpan.FromSeconds(1)); // call callback() roughly one second from now
你可以尝试以下方法:
System.Threading.Timer _timeoutTimer;
//...
int timeout = (int)TimeSpan.FromSeconds(1).TotalMilliseconds;
_timeoutTimer = new System.Threading.Timer(OnTimerElapsed,
null, timeout, System.Threading.Timeout.Infinite);
//...
void OnTimerElapsed(object state) {
// do something
_timeoutTimer.Dispose();
}
只要把睡在你的回调函数。如果您正在使用线程池或任务,则可能需要比开始之前发送的实际时间段更长的时间;这是因为线程在队列中时不会立即开始执行。
public static void MyCallback(object delay)
{
Thread.Sleep(((TimeSpan)delay).TotalMilliseconds);
... code ...
}
您可以使用匿名方法并使用较低级别的线程结构来执行上述操作。
new Thread(() => {
Thread.Sleep(delayMilliseconds);
callbackFunction();
}).Start();
您可以使用Timer类。