我针对一个函数建立一个线程threadstart ts=new threadstart(aa)
有时候aa是一个非常复杂的过程,我不喜欢无限制等下去,希望在1分钟后无聊是否结束都断掉线程,该怎么做呢?
有时候aa是一个非常复杂的过程,我不喜欢无限制等下去,希望在1分钟后无聊是否结束都断掉线程,该怎么做呢?
解决方案 »
- GridView 显示问题 超简单但是就不会
- 两个小问题,请求解决|两个小问题,请求解决
- Asp.net栏中无人搞定,来这继续提问。高分奉上(加上另一帖的)!
- winform中textbox刷新问题
- 求 C# 使用WMI技术远程获取服务器 详细示例!!急急急 急急急!!!
- 棘手的SQL问题 求求高人解决一下!!!
- 求反编译工具。能够将dll 进行反编译。
- 请教XmlReader问题
- 如何调用另外一程序?就像WIN32 CreateProcess()函数那样
- 新手提问:请都如何实现多个窗口共享一个菜单功能?Thanks
- 怎么在Image.FromFile(string)参数中写入当前目录中的文件
- 一个文件正在被使用,我无法打开,怎么办?
private ManualResetEvent threadCompleted = new ManualResetEvent(false);
private Thread thread;
public bool WaitFor(int milliseconds) {
if (!threadCompleted.WaitOne(milliseconds, false))
{
thread.Abort();
return false;
}
return true;
}
public void SetThread(Thread thread) {
this.thread = thread;
}
public void SetCompleted() {
threadCompleted.Set();
}
}// 主过程
private void StartWorking() {
ThreadState ts = new ThreadState();
ThreadPool.QueueUserWorkItem(new WaitCallback(DoWork), ts);
if (ThreadPool.WaitFor(60000))
; // OK!
else
; // aborted!
}// 线程过程
private void DoWork(object state) {
ThreadState ts = (ThreadState)state;
ts.SetThread(Thread.CurrentThread);
try { ........ } finally {
ts.SetCompleted();
}
}
yourThread.Join( new TimeSpan( 0, 1, 0 ) );
经常在异步操作线程的时候都用到这个,这个起什么作用啊,还有那个AutoResetEvent啊,能讲讲吗netmicro(麦)