【发布时间】:2015-08-20 20:17:09
【问题描述】:
考虑这段代码:
for(int i = 0; i < 10; i ++)
{
new Thread(() => Test(i)).Start();
}
Test(int i) 函数:
public void Test(int i)
{
Console.WriteLine("=== Test " + i);
}
实际输出:
=== 测试 3
=== 测试 4
=== 测试 4
=== 测试 5
=== 测试 5
=== 测试 5
=== 测试 9
=== 测试 9
=== 测试 9
=== 测试 10
如您所见,有些数字丢失了,有些数字重复了。
预期输出:
我希望以随机顺序查看所有数字。
问题
我应该锁定任何变量/方法吗?我该如何解决这个问题?
【问题讨论】:
标签: c# multithreading parallel-processing