以下 c#代码,不懂 c# 我也加了注释 我说以下代码并没有线程安全问题,但是我问了 Gemini 、Copilot 他们都说有问题
namespace helloworld
{
internal class Program
{
static void Main()
{
int foo =0;
//新建一个线程
var t = new Thread(() =>
{
foo++;
} );
t.Start(); //启动上面这个线程
t.Join(); //主线程阻塞直到 t 线程完成
Console.WriteLine(foo);
}
}
}
1
abelai 21 天前
建议直接问 foo++ 是否会有线程安全问题
|
![]() |
3
xuanbg 11 小时 41 分钟前
在另一个线程操作主线程的变量还能线程安全?也就是你这段代码特殊罢了,但凡后面再加一行 foo = 1 ,你都不知道结果是个啥。
|