多线程问题(同时执行一个函数的问题)
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就对了!
------解决方案--------------------应该作线程同步,要不会出现资源竞争问题的
------解决方案--------------------你的意思是不是线程有多个,但是筛选只有一个?也就是所有线程都是用的同一个筛选方法(实例)?