2017-02-20 122 views
-3

我想要一個C#中的方法,它將在兩行代碼之間進行5秒的休息。Thread.Sleep()的替代方法;

Thread.sleep(5000); 

不工作,因爲其他代碼也會暫停。你有任何想法如何解決這個問題?

falling.timespeed = 0.6f; 
falling.fallingl = -50f; 
// here I want a break for 5 Seconds 
falling.timespeed = 1f; 
falling.fallingl = -200f; 
+6

你能顯示你的代碼嗎? –

+0

你使用線程嗎? – BWA

+0

你可以調用你的第一個方法,然後使用定時器在5秒後啓動第二個方法。 –

回答

2

您是否熟悉現代c#中的異步功能?

在C#5和以上:

async Task DoSomeWork() 
{ 
    // Do the first part of the work 

    await Task.Delay(5000); // Asynchronously wait for a 5 second timer to expire. 

    // Do the second part of the work 
} 

注意,取決於調用此方法的線程上下文中,第2部分也可以在同一線程或不同線程上執行。

+1

而且,在這種情況下可能也很重要,UI有機會進行更新以反映「第一部分」中的更改。 –

+0

仍然有一些錯誤... http://imgur.com/kdcjOjy – Tom

+0

@你需要'使用'指令'System.Threads.Tasks'。 – Gusdor