2011-07-05 38 views
0

我將部分固件移植到用c#編寫的gui中。我發現c#中的固件_nop()#

nop() 

是一個函數,它實際上什麼都不做,並延遲執行一些時鐘週期。如果我使用nop()它會延遲固件的執行時間2毫秒。我如何延遲c#中的東西?

由於提前,

+0

.NET GUI應用程序與固件不同。如果在固件中存在nop()的原因,那麼在.NET GUI應用程序中不一定有它的原因。檢查是否需要nop()調用,如果不是,則跳過它們。 – dtb

+0

謝謝大家。結束使用System.Threading.Thread.Sleep(毫秒);因爲還有其他與需要加載的gui相關的延遲。使用相當大的延遲(毫秒與微秒相比)將適合gui開發的需要。 – Vikyboss

+0

如果你正在做GUI編程,你可能不應該做任何形式的延遲。而應使用異步編程模式來啓動工作,並通知其狀態,而不是睡眠/阻塞。 – Alan

回答

4

System.Threading.Thread.Sleep(milliseconds);

注意,阻止您的GUI的主線程超過幾毫秒的時間通常是一個壞主意。最好使用一個在幾毫秒後喚醒的計時器,以便在此期間進行事件處理。另外,如果您想在做一些I/O之前暫停,請考慮使用異步I/O。

另請注意,Windows或.NET都不提供任何實時保證。對Thread.Sleep(2)的調用將暫停至少2毫秒,但該線程可能無法在超出該時間的許多毫秒內恢復執行。

+0

謝謝我結束了使用睡眠功能。 – Vikyboss

2
Thread.Sleep(1000); 

會睡在當前執行1秒鐘。