gpt4 book ai didi

c# - 不调用 Thread.Join() 的后果

转载 作者:太空狗 更新时间:2023-10-29 22:14:45 24 4
gpt4 key购买 nike

如果我在 C# 中启动一个新线程,我是否可以直接启动并忘记而不用担心线程被加入?

void DoSomething()
{
var worker = new Worker();
var start = new ThreadStart(worker.DoStuff);
var thread = new Thread(start);
thread.Start();

// do something else...
// who knows how long it'll take...

// exit without calling thread.Join()

}

编写此代码会产生什么后果吗?

最佳答案

是的,它是安全的,因为线程会继续运行直到它自己完成,你不需要引用 Thread 对象来保持它的存活,线程的行为也不会以任何方式改变。

您唯一放弃的是稍后加入线程或检查其状态的能力,但触发和忘记线程是绝对安全的

但是,如果您触发并忘记将某个线程设置为后台线程,则如果程序在线程完成之前退出,则该线程可能无法运行完成。

关于c# - 不调用 Thread.Join() 的后果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6363849/

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