[英]Thread.Sleep why not block the thread on example
Thread.Sleep()
將主線程保持一定的毫秒數。 我希望Thread.Sleep()
阻塞主線程,即使它是從其他線程中調用的( Task.Run()
實際上創建了新線程),為什么當涉及PleaseWait()
,主線程上的循環仍在執行自從Thread.Sleep
被調用以來? 它應該對我暫停。 還是因為實際上Task.Run在不同線程上調用的Thread.Sleep()
現在不完全是主線程的Thread.Sleep
,而是引用Task.Run
創建的新線程。 意味着對於主線程來說不是休眠,而是在Task.Run
端創建的線程不是Sleep? 希望清楚。
class Program
{
static void Main(string[] args)
{
Task.Run(() => PleaseWait());
var n = 0;
while (n < 10000)
{
Console.WriteLine(n);
n++;
}
Console.ReadLine();
}
public static void PleaseWait()
{
Thread.Sleep(10000);
Console.WriteLine("After sleep");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.