gpt4 book ai didi

c# - 线程的创建和启动

转载 作者:行者123 更新时间:2023-12-03 12:49:31 24 4
gpt4 key购买 nike

我将创建这样的线程:

static void Main(string[] args)
{

Thread tr2 = new Thread(() =>
{
int a = 0;

Console.WriteLine(System.Threading.Thread.CurrentThread.ManagedThreadId);
});


tr2.Start();

Console.ReadKey();
}

但是 tr2 不会启动,它将在 ReadKey() 方法之后启动,当我将第一行添加到 Main 时> 方法,tr2ReadKey() 方法之前启动:

static void Main(string[] args)
{
Console.WriteLine(System.Threading.Thread.CurrentThread.ManagedThreadId);



Thread tr2 = new Thread(() =>
{
int a = 0;

Console.WriteLine(System.Threading.Thread.CurrentThread.ManagedThreadId);
});



tr2.Start();

Console.ReadKey();
}

哪里出了问题?

最佳答案

Console.ReadKey() 获取 Console 类中名为 Console.InternalSyncObject 的内部对象的锁。

简而言之,这意味着 Console.WriteLine 将在执行之前等待锁被释放 - 正如您可能已经猜到的,只要您按下某个键,锁就会被释放。

关于c# - 线程的创建和启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16926574/

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