我試圖找到一種方法,導致程序不會暫停,但他們是延遲執行某些任務。即例如,我試圖延遲輸出「Hello」給控制檯10秒,但程序將繼續執行程序的其餘部分。C#延遲 - 延遲輸出到控制檯,而程序繼續執行
1
A
回答
1
啓動一個新的線程:
Task.Factory.StartNew(new Action(() =>
{
Thread.Sleep(1000 * 10); // sleep for 10 seconds
Console.Write("Whatever");
}));
0
你可以使用'Thread.Sleep(10000);'
參見: https://msdn.microsoft.com/en-us/library/d00bd51t(v=vs.110).aspx
5
使用TPL:
static void Main(string[] args)
{
Console.WriteLine("Starting at " + DateTime.Now.ToString());
Task.Run(() =>
{
Thread.Sleep(10000);
Console.WriteLine("Done sleeping " + DateTime.Now.ToString());
});
Console.WriteLine("Press any Key...");
Console.ReadKey();
}
輸出:
Starting at 2/14/2017 3:05:09 PM
Press any Key...
Done sleeping 2/14/2017 3:05:19 PM
只是注意,如果按前10秒的關鍵,它將退出。
1
你可以使用的Task.Delay和ContinueWith相結合的方法:
Task.Delay(10000).ContinueWith(_ => Console.WriteLine("Done"));
2
有模擬延遲2種典型的方式:
- 一個異步任務,如:
Task.Delay
- 或阻止活動:
Thread.Sleep
您似乎指的是第一種情況。
這是一個例子
public static void Main(string[] args)
{
Both();
}
static void Both() {
var list = new Task [2];
list[0] = PauseAndWrite();
list[1] = WriteMore();
Task.WaitAll(list);
}
static async Task PauseAndWrite() {
await Task.Delay(2000);
Console.WriteLine("A !");
}
static async Task WriteMore() {
for(int i = 0; i<5; i++) {
await Task.Delay(500);
Console.WriteLine("B - " + i);
}
}
輸出
B - 0
B - 1
B - 2
A !
B - 3
B - 4
相關問題
- 1. 延遲執行
- 2. C#的LINQ - 延遲執行
- 3. 延遲執行 - C#WPF
- 4. Apache Storm:執行程序之間的關係,執行延遲和進程延遲?
- 5. 線程執行延遲+ Android
- 6. 延遲執行IRP_MN_SET_POWER
- 7. LINQ延遲執行
- 8. AS3延遲執行?
- 9. PLINQ延遲執行
- 10. javascript延遲輸出
- 11. Arduino到Unity3D延遲/延遲
- 12. C#到MY SQL延遲查詢執行
- 13. MySQL觸發器/程序執行延遲
- 14. 創建延遲執行程序
- 15. C#延遲線程
- 16. 而與延遲
- 17. 爲什麼google chromes控制檯延遲?
- 18. Eclipse插件 - 延遲寫入控制檯
- 19. 無延遲地寫入控制檯
- 20. 控制檯輸出延遲與Python但不是Java使用PsExec
- 21. 如何測量低延遲C++應用程序的延遲
- 22. 延遲繼續現在正在工作
- 23. 連續延遲的android處理程序
- 24. 控制器意外延遲
- 25. 延遲控制事件
- 26. Javascript代碼執行延遲
- 27. Jquery的延遲執行
- 28. jquery延遲功能執行
- 29. Iphone延遲執行代碼
- 30. 延遲uart命令執行
你可以啓動它本身暫停10秒,然後寫入控制檯另一個線程。 – David