
以下 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 286 天前 建议直接问 foo++ 是否会有线程安全问题 |
3 xuanbg 265 天前 在另一个线程操作主线程的变量还能线程安全?也就是你这段代码特殊罢了,但凡后面再加一行 foo = 1 ,你都不知道结果是个啥。 |