日期:2014-05-19  浏览次数:20686 次

多线程问题(同时执行一个函数的问题)
for(int   i   =   0;i <6;i++)
{
Thread   thread   =   new   Thread(new   ThreadStart(Filter));
thread.Name   =   Convert.ToString(i);
thread.Start();
}
private   void   Filter()
{

DateTime   startTime   =   DateTime.Now;
try
// {
// while(true)
// {
int   j   =   0;
for(int   i=0;i <al.Count;i++)
{
lock(typeof(Thread))
{
if(isOK(al[i].ToString()))
{
j   =   j+1;
//MessageBox.Show(al[i].ToString()+ "非法! ");
}
}
}
// Thread.Sleep(1);

// }
//MessageBox.Show( "a ");

Thread.CurrentThread.Abort();

}


我希望多个线程同时执行Filter()需要怎么写啊,

------解决方案--------------------
挂起
------解决方案--------------------
多个线程同一时刻执行不太可能,你可以加线程锁,也可以采用同步信号量处理,lock方式
------解决方案--------------------
确实表达不清楚,不过现在看来你是想同步·!
lock就对了!
------解决方案--------------------
应该作线程同步,要不会出现资源竞争问题的
------解决方案--------------------
你的意思是不是线程有多个,但是筛选只有一个?也就是所有线程都是用的同一个筛选方法(实例)?