请问我建立了一个新类clsThreadFun里面存放了一些函数并且传递一个函数,是运行线程代码:
void ThreadRun(int i)
{
clsThreadFun Search=new clsThreadFun(i);
Thread test=new Thread(new ThreadStart(Search.SearchMain));
RefList();
test.Start();
}我要实现多线程,也就是说要多次运行这个函数,用i分辨是哪个,可是我如何通过i来结束指定的线程???再现等
void ThreadRun(int i)
{
clsThreadFun Search=new clsThreadFun(i);
Thread test=new Thread(new ThreadStart(Search.SearchMain));
RefList();
test.Start();
}我要实现多线程,也就是说要多次运行这个函数,用i分辨是哪个,可是我如何通过i来结束指定的线程???再现等
解决方案 »
- 如何将两个中间有空格的16进制数转换成10进制数啊.
- C#调用非托管DLL文件指针类型转化问题
- DataTable
- 关于字符串截取的问题
- 怎样获取Word或者Excel中的所有注释Comments
- Calendar 取时间问题
- 求解决方案!!在线等
- Tree_View奇怪问题,那位高手来看看!解决就给分!
- 用c#写了一个webserveice服务程序,用客户端程序调用服务程序提供的方法时,提示Access Denide
- 我现在正在全力学习C#,但对于C#中的“在类中实现事件”我理解的不是很清楚,如下面这段代码我看的非常吃力,谁知道哪里有“C#事件”这方
- 请教在C#中调用存储过程的问题,在线等,谢谢!
- 请问有没有办法让.NET下C#FORM程序变成绿色软件
void ThreadRun(int i)
{
Search _Search=SearchCollection.Add(i);
}要停止某个线程:
void StopThread(int i){
_SearchCollection[i].Dispose();
}
///////////////////////////////////////////////
public class Search : IDisposable
{
private int _ThreadID;
Thread _Thread=new Thread(new ThreadStart(this.SearchMain));
private bool _Disposing=false;
public Search(int id){
_ThreadID=id;
_Thread.start();
} private void SearchMain(){
//把SearchMain过程放到这里
while(!_Disposing){
//过程
}
}
public void Dispose(){
_Disposing=true;
}
};
public class SearchCollection : DictionaryBase
{
public Search this [int i]{
get {return (search)Dictionary[i];}
}
public ICollection Values {
get {return Dictionary.Values;}
}
public Search Add(int i){
Search o=new Search(i);
Dictionary.Add(i,o);
return o;
}
};
clsThreadFun[] Searchs=new clsThreadFun[n];
其次将clsThreadFun对象保存到对应的数组中
Searchs[n]=new clsThreadFun(n);
Thread test=new Thread(new ThreadStart(Search[n].SearchMain));
RefList();
test.Start();
再有在clsThreadFun内定义一个bool Quit字段
结束线程时设置Searchs[n].Quit=false; 线程检测到此值便安全退出