2013-08-26 45 views

回答

1

你可以尝试以下方法:

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

只要把睡在你的回调函数。如果您正在使用线程池或任务,则可能需要比开始之前发送的实际时间段更长的时间;这是因为线程在队列中时不会立即开始执行。

public static void MyCallback(object delay) 
{ 
    Thread.Sleep(((TimeSpan)delay).TotalMilliseconds); 
    ... code ... 
} 

您可以使用匿名方法并使用较低级别的线程结构来执行上述操作。

new Thread(() => { 
    Thread.Sleep(delayMilliseconds); 
    callbackFunction(); 
}).Start(); 
0

您可以使用Timer类。