【发布时间】:2022-01-02 01:23:47
【问题描述】:
我在 Windows 上有 .net 核心和简单的代码。如您所见,目前没有Join()。所以主线程不会等待孩子,但是当我运行时:
C:\...\bin\Release\netcoreapp3.1>dotnet ConsoleAppTest.dll
> 4
> mission complete
> Thread complete
C#代码:
static void Main(string[] args)
{
new Thread(() =>
{
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(10000);
Console.WriteLine("Thread complete");
}).Start();
Console.WriteLine("mission complete");
}
我认为主线程应该运行而不是等待子线程。我错了吗?
当我启动时
Task.Run(() =>
{
Thread.Sleep(10000);
Console.WriteLine("Thread complete");
});
主线程不等待
【问题讨论】:
-
您是在调试还是发布模式下运行?直接使用
Thread有什么特别的原因吗? -
在vs外发布,所以没有副作用
标签: c# .net multithreading .net-core