使用类似下面的代码,创建的新线程会在函数返回后自行结束吗?
new Thread(() =>
{
function();
}).Start();
我对线程很陌生,所以我想知道。
使用类似下面的代码,创建的新线程会在函数返回后自行结束吗?
new Thread(() =>
{
function();
}).Start();
我对线程很陌生,所以我想知道。
没关系...如果担心在可执行文件退出之前线程可能无法完成,您可能想要:
new Thread(() =>
{
function();
}){IsBackground = true}.Start();
后台线程不会阻止您的应用退出。
是的,线程将在函数完成后结束,但除非你有一个需要在函数内部使用的参数,否则我不会那样启动它;我会这样做:
new Thread(function).Start();
尽管管理线程被认为是最佳实践,但如果您对该特定线程的结果/状态不感兴趣并且不需要处理取消等问题,那么您的工作就可以了。
值得考虑的是你是否需要一个专门的线程来处理你正在做的事情。如果您正在运行的代码相对较小,您可能需要考虑通过TPL或QueueUserWorkItem来使用 ThreadPool。