2013-08-26 40 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類。