微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将消息发送到Windows GUI线程

我注意到,当你创build一个Web服务对象(从SoapHttpClientProtocolinheritance),并使用Async方法时,它会在Windows GUI线程上进行callback。

有谁知道这是如何工作的?

我怎样才能达到同样的目的。

我认为这将节省我不必检查我的GUIforms的Invokerequired,如果我确定callback总是发生在GUI线程。

在我的新窗口安装Image.FromStream不以相同的方式工作

在启动Avaya主动拨号程序时,WPF中的System.AccessViolationException

在线程中调用列表框

屏幕保护程序仍然必须安装到System32?

有没有一种方法/工具来显示系统中的所有内存映射文件

我怀疑它使用Asyncoperationmanager.SynchronizationContext静态获取同步上下文。 这可以让你适当地发布回调。

辉煌。 感谢您的答案。 两种选择似乎都起作用,并有其优势。

以下是我用来测试的示例代码

public partial class asynctest : Form { static void Main() { Application.Run(new asynctest()); } Asyncoperation _operation; SynchronizationContext _context; TextBox _textBox; public asynctest() { _operation = AsyncoperationManager.CreateOperation(null); _context = WindowsFormsSynchronizationContext.Current; _textBox = new TextBox(); this.Controls.Add(_textBox); new Thread(AsyncThread).Start(); } void AsyncThread() { _operation.Post(GuiThread,null); _context.Post(GuiThread,null); } void GuiThread(object state) { _textBox.Text = _textBox.Invokerequired ? "Didn't work" : "It Worked"; } }

您可以在主线程中创建一个WindowsFormsSynchronizationContext对象,然后在另一个线程上调用其Send方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐