簡體   English   中英

如何在C#中實現類似JavaScript的setTimeout?

[英]how do I implement something like JavaScript's setTimeout in C#?

我有一個C#應用程序,它從服務器接收更新,處理它並更新GUI。 不斷更新,每秒說幾次。 我希望應用最多每2秒更新一次GUI。 因此,如果更新在時間T出現,我希望從T到T + 2sec的所有更新都保留在緩沖區中,並在T + 2sec進行處理和GUI更新。 我知道在JS中,您可以在將來的某個時候使用setTimeout()執行一些代碼,因此我需要類似的東西。

有什么合適的方法做到這一點? 我聽說使用線程“調度”函數調用不是一個好主意,但是我不確定這樣做的更好方法。 使用間隔為兩秒的計時器(與GUI線程同步)會很糟糕嗎,該計時器會進行處理/更新嗎?

您可以使用System.Windows.Forms.Timer 它不會在單獨的線程中運行事件,而是由GUI線程運行事件。 這樣,您可以直接更新GUI,而不必使用Invoke。

您應該使用在您的問題中發布的計時器類之一。

請參閱 MSDN文章對它們進行比較-這應該為您做出決定提供良好的基礎。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM