c# - 在 ui 线程中执行委托(delegate)(使用消息泵)

标签 c# .net multithreading thread-safety message-queue

我有一个后台线程来处理与外部服务的通信。每次后台线程收到一条消息时,我都想将其传递给 UI 线程以进行进一步处理(显示给用户)。

目前我已经创建了一个线程安全的消息队列,它定期在 Timer.Tick 中汇集并填充到后台线程中。但是这个解决方案是次优的。

你知道如何使用消息泵将事件从后台线程传递到 ui 线程吗?

最佳答案

您可以使用 Control.Invoke 并使用委托(delegate)。委托(delegate)将在创建控件的线程上执行。

http://msdn.microsoft.com/en-us/library/zyzhdc6b.aspx

关于c# - 在 ui 线程中执行委托(delegate)(使用消息泵),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1132472/

相关文章:

c# - 拒绝在 PropertyGrid 控件中使用拆分器

c# - XNA Xbox 360 Content Manager Thread 卡住 Draw Thread

.net - 我们能保证通过数据竞争缓存哈希码能正常工作吗?

c# - .NET 线程与操作系统线程不同吗?

c++ - 线程成员函数和 mex 文件因 std::bad_alloc 而崩溃

c# - 在 C# 中创建自定义常量后缀

c# - ASP.net 5.0 - Web API 授权 &ErrorCode 302 而不是 401

c# - 奇怪的 Gridsplitter 调整大小行为

c# - 有什么方法可以防止使用新 csproj 格式的 .NET 应用程序存在于 bin/debug/net472/AppName 中?

C#多线程重复