突然看了一下,未回答的问题,最近在做一些多线程的东西,顺便复习一下
如果你是一个函数,多个线程的话,可以使用以下几种方法
1.
object o = new object();
lock (o)
{
//do sth
}
2.
private static object m_monitorObject = new object();
while(!Monitor.TryEnter(m_monitorObject)){}
Monitor.Enter(m_monitorObject);
//do sth
Monitor.Exit(m_monitorObject);
3.
在一个线程中
System.Threading.Interlocked.Increment(ref number);//对应你的情况
//就是0-1K,原子操作
然后再开启你要的线程,number为参数//比如 WorkData(number),这样就不会出错了
我觉得 第3个比较适合你 。。