我是C#新线程的新手.有没有为线程设置超时而不阻塞调用线程(在C#3.5中)?
如果没有,使用线程执行函数是否合乎逻辑,并且在该函数内创建一个线程并加入它来克服这个主线程阻塞问题?为了显示:
代替:
Public void main()
{
...
Thread thrd1 = new Thread(new ThreadStart(targetObj.targetFunc));
thrd1.Start();
thrd1.Join();
...
}
Run Code Online (Sandbox Code Playgroud)
使用类似的东西:
Public void main()
{
...
Thread thrd1 = new Thread(new ThreadStart(middleObj.waiter));
thrd1.Start();
...
}
//And in the middleObj.waiter():
Public void waiter()
{
Thread thrd2 = new Thread(new ThreadStart(targetObj.targetFunc));
thrd2.Start();
thrd2.Join();
}
Run Code Online (Sandbox Code Playgroud)
我查了一下,最简单、最全面的方法是我在问题描述中提到的解决方案。中级线程可以轻松等待第二个线程,而不会中断主线程;如果第二个线程在要求的时间内没有响应,它可以杀死它。这正是我所需要的。我使用了它并且没有任何问题。
| 归档时间: |
|
| 查看次数: |
23899 次 |
| 最近记录: |