[C#]线程数组,装载,启动,停止
来源:互联网 发布:澳大利亚gpa算法 编辑:程序博客网 时间:2024/05/18 02:47
private void LoadThread()//装载线程
{
try{
threads=new Thread[ArraySize];
for(int i=0;i<threads.Length;i++)
{
threads[i]=new Thread(new ThreadStart(ExecuteFuntion));
}
}
}
private void Action()//启动线程
{
try
{
for (int i = 0; i < threads.Length; i++)
{
threads[i].IsBackground = true;//允许用户在线程执行过程中线束程序
threads[i].Start();
}
}
catch (Exception ex)
{
log.WriteLog(ex.Message + "-->Action()");
}
}
private void StopThread()//停止线程
{
try
{
Monitor.Enter(this);//排它锁,不执行其它任务直到解锁为止
if (threads != null)//判断线程对象是否为空
{
for (int i = 0; i < threads.Length; i++)//遍历线程,查找还在活动的子线程
{
if (threads[i].IsAlive)//[MSDN:如果此线程已启动并且尚未正常终止或中止,则为 true;否则为 false。]如果当前线程还在活动那么为true,已经终止或中止则为false
{
try
{
threads[i].Abort();//[MSDN:在调用此方法的线程上引发 ThreadAbortException,以开始终止此线程的过程。调用此方法通常会终止线程。]
threads[i].Join();//[MSDN: 在继续执行标准的 COM 和 SendMessage 消息泵处理期间,阻塞调用线程,直到某个线程终止为止。]
}
catch (Exception ex)
{
log.WriteLog(ex.Message + "threads[" + i + "].Abort();");
Thread.ResetAbort();//[MSDN:当调用 Abort 以终止线程时,系统将引发 ThreadAbortException。ThreadAbortException 是一个可由应用程序代码捕获的特殊异常,但在 catch 块的结尾将被再次引发,除非调用 ResetAbort。ResetAbort 取消要中止的请求,并防止 ThreadAbortException 终止线程。]
}
}
}
SetTishi("完成。--> "+Gdata.SearchID);
}
}
catch (Exception ex)
{
log.WriteLog(ex.Message + "StopThread()");
}
finally
{
Monitor.Exit(this);
}
}
- [C#]线程数组,装载,启动,停止
- C#中线程数组的装载、启动和停止
- python3线程启动与停止
- 线程服务的停止与启动
- 如何解决线程的启动和停止
- 线程启动start后,如何停止的?
- 使用CountDownLatch启动和停止线程
- java动态控制线程的启动和停止
- java多线程之启动,停止线程
- 线程服务的停止与启动
- Java线程学习笔记(一)---启动和停止线程
- 【Java 语言】Java 多线程 一 ( 线程启动 | 线程停止 )
- 停止线程
- 停止线程
- 停止线程
- 停止线程
- 停止线程
- 停止线程
- Android 如何使用GPU硬件加速
- 终端快捷键
- Linux下的五个查找命令:grep、find、locate、whereis、which
- Display yuv formatted video by shader
- HttpClient、Tornado服务器开启gzip压缩功能
- [C#]线程数组,装载,启动,停止
- thread_sem
- CentOS 6.3 下 安装rlwrap
- 草根先生和他的孙子企业—沪杭感触两天半
- 网上抢票软件
- jQuery Ajax 实例 全解析
- OANET(六):设置Qt Creator使其支持交叉编译
- C#中RSA加密解密和签名与验证的实现
- PHP企业级应用之WebService篇 .