【问题标题】:Passing a msg to another thread in C#将消息传递给 C# 中的另一个线程
【发布时间】:2009-08-26 14:36:15
【问题描述】:

我有一个线程在后台运行。我如何从我的主线程发送消息?我需要发送的唯一消息是“go”/“wakeup”

【问题讨论】:

    标签: c# multithreading communication


    【解决方案1】:

    如果您的线程在您希望它启动之前什么都不做,那么为什么要在您希望它启动之前启动它?

    如果您希望运行后台线程,然后暂停/等待某个事件,然后继续,一个简单的方法是使用 EventWaitHandle 系列类。

    一个简单的例子(取自this question)。两个线程都应该可以访问以下内容:

    private ManualResetEvent _workerWait = new ManualResetEvent(false);
    

    然后,在您的工作线程中:

    _workerWait.WaitOne();
    

    现在,它会一直阻塞,直到你的主线程调用:

    _workerWait.Set()
    

    有关您的选项和一些示例的更完整讨论,请参阅:http://www.albahari.com/threading/

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:

        如果您正在谈论唤醒睡眠线程 - Thread.Suspend()(wait) - Thread.Resume()(go/wake up)

        【讨论】:

          【解决方案4】:

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-01-07
            • 2019-09-16
            • 2013-12-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多