我是 C# 中线程的新手。 是否可以在不阻塞调用线程的情况下为线程设置超时(在 C# 3.5 中)?
如果不是,使用线程执行一个函数并在该函数内创建一个线程并加入它来克服这个主线程阻塞问题是否合乎逻辑?举例说明:
代替:
Public void main()
{
...
Thread thrd1 = new Thread(new ThreadStart(targetObj.targetFunc));
thrd1.Start();
thrd1.Join();
...
}
使用类似的东西:
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();
}
最佳答案
我检查了一下,最简单最全面的方法就是我在问题描述中提到的解决方案。中间线程可以很容易地等待第二个线程,而不会中断主线程;如果第二个线程在要求的时间内没有响应,它可以杀死第二个线程。这正是我所需要的。我使用了它并且没有问题。
关于c# - c#中的线程超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3195030/