将控制台应用程序转换为使用后台辅助角色的 GUI

本文关键字:角色 GUI 后台 应用 控制台 程序转换 | 更新日期: 2023-09-27 18:35:12

我正在将控制台应用程序转换为Windows Forms Application和DLL。Windows 窗体应用程序使用 BackgroundWorker 让 DLL 执行计算繁重的任务。

DLL 从控制台应用程序遗留下来,仍然充斥着Console.WriteLine()语句。我想将过去打印到控制台的内容定向到 Windows 窗体中的TextBox。理想情况下,我想在表单初始化期间将流从 DLL 挂接到文本框并完成它。我担心这可能对后台工作者的线程不安全。

我发现的最佳方法是在 DLL 中将Console.WriteLine()更改为Trace.WriteLine(),然后按照跟踪侦听器的方法写入文本框(WPF 应用程序),但我仍然对 BackgroundWorker 有顾虑,并且不太热衷于将文本附加到现有字符串(有很多文本和 IMO 字符串并不意味着/优化为在它们上连接大量文本)。

将旧的控制台输出打印到文本框的最佳方法是什么,这对于后台工作者来说是安全的?

将控制台应用程序转换为使用后台辅助角色的 GUI

以下博客文章可能是您要查找的内容:

http://saezndaree.wordpress.com/2009/03/29/how-to-redirect-the-consoles-output-to-a-textbox-in-c/

我认为它准确地描述了您的要求。基本上,它使用Console.SetOut将控制台输出重定向到您自己的流编写器。阅读帖子下方的评论,了解有关处理线程问题的其他信息。