C#将代码分派到以后运行?
如何分派代码以在以后运行?比如:C#将代码分派到以后运行?,c#,dispatch,C#,Dispatch,如何分派代码以在以后运行?比如: ThreadPool.QueueUserWorkItem(callback, TimeSpan.FromSeconds(1)); // call callback() roughly one second from now 您可以尝试以下操作: System.Threading.Timer _timeoutTimer; //... int timeout = (int)TimeSpan.FromSeconds(1).TotalMilliseconds; _ti
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();
}
您可以尝试以下操作:
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();
只需在回调函数中设置睡眠。如果您使用的是线程池或任务,则在开始之前可能需要比您发送的实际时间跨度更长的时间;这是因为如果线程排队,它不会立即开始执行
public static void MyCallback(object delay)
{
Thread.Sleep(((TimeSpan)delay).TotalMilliseconds);
... code ...
}
您可以使用匿名方法内联执行上述操作,并使用较低级别的线程构造
new Thread(() => {
Thread.Sleep(delayMilliseconds);
callbackFunction();
}).Start();
您可以使用该类进行此操作。您可以使用该类进行此操作