gpt4 book ai didi

c# - Thread.Join 与 Task.Wait

转载 作者:太空狗 更新时间:2023-10-30 01:31:44 27 4
gpt4 key购买 nike

考虑以下代码。

线程

static void Main(string[] args)
{
Thread t = new Thread(Foo);
t.Start();

Console.WriteLine("Main ends.");
//t.Join();
}

static void Foo()
{
for (int x = 0; x < 1000000000; x++) ;

Console.WriteLine("Foo ends.");
}

任务

static void Main(string[] args)
{
Task t = new Task (Foo);
t.Start();

Console.WriteLine("Main ends.");
t.Wait();
}

static void Foo()
{
for (int x = 0; x < 1000000000; x++) ;

Console.WriteLine("Foo ends.");
}

当使用Task时,我们需要t.Wait()来等待线程池线程在主线程结束之前完成但是当使用Thread,我们不需要 t.Join 来获得相同的效果。

问题

为什么不需要 t.Join() 来防止主线程在其他派生线程结束之前结束?

最佳答案

有几个区别,但回答您的问题的重要部分是线程池使用后台线程,并且这些线程不会阻止进程退出。您可以阅读更多here .

关于c# - Thread.Join 与 Task.Wait,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40028646/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com