作者kenshinn (子凌(b))
看板C_Sharp
标题Re: [问题] 请教thread问题
时间Mon Aug 4 20:53:49 2008
※ 引述《missbus (smile)》之铭言:
前文述删
看了阁下的程式後
关键在於
new Thread(new ThreadStart(new hello(1).add)).Start();
new Thread(new ThreadStart(new hello(2).add)).Start();
使得两条 Thread 以一前一後的方式开始执行
接着在 Add 方法中
public void add()
{
for (int k = 0; k < 10; k++)
{
lock (this)
{
test.hello[1, 1] += 1;
Console.WriteLine("hello object " + i + " -- " +
Thread.CurrentContext.ToString() +
" -- " + test.hello[1, 1]);
}
}
}
虽然有 lock 但是两条 Thread 并行的结果,使得在离开 lock 後另一条 Thread 的
函式有机可趁,故结果是无法预测的
--
my blog:
http://kenshinnn.blogspot.com
operation system : Ubuntu GNU/linux
window manager : Gnome
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.232.5.46