【发布时间】:2011-08-10 13:50:29
【问题描述】:
我需要将 WinForm 应用程序迁移到控制台应用程序。
在 WinForm 应用程序中,我有类似的内容:
this.Invoke(new LogResponseCallback(this.LogResponse), new object[] { allAlarmsJson });
private delegate void LogResponseCallback(string text);
private void LogResponse(string response)
{
this._richTextResponse.Text = response + "\r\n";
}
好像在处理完某个操作后调用了主线程。
我关心的是如何在控制台应用程序中实现相同的异步委托调用。
任何帮助将不胜感激。
提前致谢
【问题讨论】:
-
你不能,控制台应用程序没有必要的管道来使 SynchronizationContext 派生类工作。制作你自己的基本上涉及重新发明消息循环。这在控制台应用程序中的问题要小得多,因为 Console 类已经是线程安全的。避免在控制台应用程序中使用 RichTextBox,当您操作其 Rtf 属性时,它往往会创建其窗口句柄。这不好。
标签: winforms asynchronous delegates console-application