c#中的线程超时

Dev*_*nto 8 c# multithreading

我是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)

Dev*_*nto 4

我查了一下,最简单、最全面的方法是我在问题描述中提到的解决方案。中级线程可以轻松等待第二个线程,而不会中断主线程;如果第二个线程在要求的时间内没有响应,它可以杀死它。这正是我所需要的。我使用了它并且没有任何问题。