我正在将控制台应用程序转换为 Windows 窗体应用程序和 DLL。Windows 窗体应用程序使用 BackgroundWorker 让 DLL 执行计算量大的任务。
从控制台应用程序遗留下来的 DLL 仍然充满了Console.WriteLine()
语句。我想将过去打印到控制台的内容引导到TextBox
Windows 窗体中。理想情况下,我想在表单初始化期间将来自 DLL 的流连接到文本框并完成它。我担心这对于 BackgroundWorker 可能不是线程安全的。
我发现的最佳方法是在 DLL 中更改Console.WriteLine()
为Trace.WriteLine()
,然后按照Trace listener 中的方法写入文本框(WPF 应用程序),但我仍然对 BackgroundWorker 有疑虑,并且不太热衷于将文本附加到现有的字符串(有很多文本,IMO 字符串并不意味着/优化为在它们上面连接大量文本)。
将旧控制台输出打印到使用 BackgroundWorker 安全的文本框的最佳方法是什么?