2012-05-24 92 views
0

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

从控制台应用程序中遗留下来,该DLL仍然散布着Console.WriteLine()语句。我想将以前打印到控制台的内容导入Windows窗体中的TextBox。理想情况下,我希望在表单初始化过程中将DLL从DLL连接到文本框,并完成它。我担心BackgroundWorker可能不是线程安全的。

我发现,最好的办法是在DLL改变Console.WriteLine()Trace.WriteLine(),然后按照该方法在Trace listener to write to a text box (WPF application)但我仍然有BackgroundWorker的担忧,我不上添加文本现有字符串过于激烈(有一个大量的文本和国际海事组织的字符串不是意味着/优化有大量的文字连接在他们)。

将旧的控制台输出打印到可以安全使用BackgroundWorker的文本框的最佳方式是什么?

+0

它是否必须打印为其生成的或可以一次完成打印?而这个问题更多地涉及到跨线程调用的机制,或者在不改变代码的情况下捕获'Console.WriteLine'输出? –

+0

当'ReportProgress'事件发生时,我希望打印输出是生成或(更合理)。 – chessofnerd

回答

相关问题