c# - c#中的线程超时

标签 c# multithreading

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

相关文章:

c# - 解析和过滤 javascript 数组

C# 字典,键是字符串,值是计数器。近似算法和线程安全

c++ - 奇怪的线程执行顺序?

java - 如何设计一个对请求进行排队并批量处理的系统?

Android fragment 和独立线程

C# - 带种子的随机数

c# - 是否可以在 RMQ .NET 中指定多个连接点?

java - Java 中的并行任务

c# - C#开发者需要什么样的机器

c# - 配置 Identity Server 以使用 ASP.NET Identity 角色