【问题标题】:Can I run a method on the main thread from a separate thread?我可以从单独的线程在主线程上运行方法吗?
【发布时间】:2010-12-31 00:50:53
【问题描述】:

我正在从串行端口读取数据,但 SerialPort 的 DataReceived 事件是在它自己的线程上处理的。我想在主线程上处理这个,但简单地声明一个事件并引发它仍然会导致它在 SerialPort 线程上被处理。我假设我需要声明一个可以调用的委托,但我不知道它会如何工作。

例如,我想从 DataReceived 线程调用主线程上的 Sub HandleDataReceived(),让 HandleDataReceived() 在主线程上运行。我该怎么做?

【问题讨论】:

    标签: vb.net serial-port multithreading


    【解决方案1】:

    如果主线程是一个UI线程,你可以使用它的SynchronizationContext或者调用Control.BeginInvoke

    【讨论】:

    • 谢谢;我将进一步研究 Control.BeginInvoke,因为它看起来更适合我的需求。
    • @Steven:不客气。您应该通过单击空心检查来接受此答案。
    • 是的,我在等着看能不能让它工作。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    相关资源
    最近更新 更多