c# - 线程,两个线程之间的通信c#

标签 c# .net multithreading visual-studio

我想知道在两个线程之间实现通信的最佳方式是什么。我有一个生成随机数的线程(类 Sender),现在我想要另一个线程(类 Receiver)来接收生成的随机数。 这是发件人:

public  class Sender
{
    public int GenerateNumber(){


        //some code
        return randomNumber;
    }
}

当然在 Main 函数中我将启动这些线程:

static void Main(string[] args){

     Sender _sender=new Sender();
     Thread thread1=new Thread(new ThreadStart(_sender.GenerateNumber));

}

感谢你的帮助

最佳答案

如果您使用的是 .NET 4,我建议您使用更高级别的抽象: Task<TResult> .您的第一个线程可以安排任务(这可能最终会创建一个线程,或安排在现有的任务处理线程上),然后可以检查状态、阻止结果等它认为合适。

如果您想做的不仅仅是一次完成的任务,您可能想要使用生产者/消费者队列 - 同样,.NET 4 通过 BlockingCollection<T> 帮助实现这一点.

关于c# - 线程,两个线程之间的通信c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8763761/

相关文章:

c++ - C++11 标准库可以在没有同步的情况下使用内部静态常量变量吗?

c++ - 在一个简单的例子中解释并行代码执行和进一步的性能提升

c# - 更好的填充 ListBox DataTemplate 的性能

c# - 如何修复此 lambda 表达式?

.net - IIS7 或 .Net 301 从 1 个域重定向到另一个域

c# - WCF 中同一服务的两个端点,一个安全,一个不安全

c++ - 为什么一个 omp 线程完成而其他线程无法执行相同操作?

c# - C#Youtube api V3-值不能为空错误异常

c# - 'call command on property change' 功能应该去哪里?

c# - 如何为 WPF TabControl 选项卡添加边距?