for (int k = 0; k < com.Length; k++)
{
ThreadClass tc = new ThreadClass();//里面主要是一个while循环
Thread t1 = new Thread(new ParameterizedThreadStart(tc.Run));
t1.Start(com[k].ToString());
Thread.Sleep(50);
}在while中需要调用方法,
被while调用的方法中也有调用其他的方法,
有时候数据会出现混乱,
如果用lock加锁,应该遵循什么规则,或者说在哪些地方应该加锁
{
ThreadClass tc = new ThreadClass();//里面主要是一个while循环
Thread t1 = new Thread(new ParameterizedThreadStart(tc.Run));
t1.Start(com[k].ToString());
Thread.Sleep(50);
}在while中需要调用方法,
被while调用的方法中也有调用其他的方法,
有时候数据会出现混乱,
如果用lock加锁,应该遵循什么规则,或者说在哪些地方应该加锁
这种处理,你可以考虑使用.net提供的线程池.或许能好点.
class ThreadClass
{
static int a;//共享资源
static object locks=new Object(); //令牌
public void Run(string param)
{
while(……)
{
lock(locks)
{
//操作a……
}
}
}
}