簡體   English   中英

我怎么能延遲C#?

[英]How can i put a delay with C#?

我想讓一個應用程序執行幾條指令來傳遞以下指令必須等待幾毫秒。

這樣:

while(true){

  send("OK");
  wait(100); //or such delay(100);

}

在C#中有可能嗎?

Thread.Sleep(100); 會做的。 這可以在System.Threading命名空間中找到。

您可以使用Thread.Sleep()方法暫停當前線程X毫秒:

// Sleep for five seconds
System.Threading.Thread.Sleep(5000);

要睡眠100毫秒,請使用Thread.Sleep

While(true){    
  send("OK");
  Thread.Sleep(100);
}

Thread.Sleep(毫秒)應該停止該秒的應用程序。 閱讀MSDN中的Thread.Sleep。

可以使用Thread.Sleep ,但我強烈反對它,除非你A)知道它是合適的事實而B)沒有更好的選擇。 如果您可以更具體地了解您想要實現的目標,那么可能會有更好的替代方案,例如使用事件和處理程序。

是的,您可以使用Thread.Sleep方法

while(true)
{
  send("OK");
  Thread.Sleep(100); //Sleep for 100 milliseconds
}

然而,睡眠通常表示次優的設計決策。 如果可以避免,我建議這樣做(使用回調,用戶模式等)。

這將是一個更好的選擇,因為它不會鎖定當前的thead並使其無響應。

創建此方法

    async System.Threading.Tasks.Task WaitMethod()
    {
        await System.Threading.Tasks.Task.Delay(100);
    }

然后像這樣打電話

    public async void MyMethod()
    {
        while(true)
        {
            send("OK");
            await WaitMethod();
        }
    }

不要在調用延遲的方法中偽造異步!

有關更多信息,請參閱此頁面,我在嘗試做類似的事情時發現

Thread.Sleep()是解決方案。它可用於等待一個線程,直到其他線程完成它的工作執行一條指令后,有人想在執行后面的語句之前等待時間。 它有兩個重載方法。第一個采用int類型的milisecond參數,而第二個采用timespanpan參數。 1 Milisecond=1/1000s毫秒1 second=1000 Miliseconds 1 second=1000 Miliseconds假設有人想等待10秒代碼將....

System.Threading.Thread.Sleep(10000);

有關Thread.Sleep()更多詳細信息,請訪問http://msdn.microsoft.com/en-us/library/274eh01d(v=vs.110).aspx

快樂的編碼.....!

暫無
暫無

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

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