我注意到以下行为。当 IProgress 填充控制台输出消息时,它们会出现在不正确的文件夹中。
var recounter = new IdRecounter(filePath, new Progress<string>(Console.WriteLine));
recounter.RecalculateIds();
我正在努力提高我的封装、可重用性和设计技能。所以,我有一个名为 IdRecounter 的类。我现在想在控制台应用程序中使用它,但稍后可能会在 WPF 应用程序或其他应用程序中使用它。
因此,我希望班级完全不知道它的环境——但同时我想报告“实时”动作的进度——因此,我使用 IProgress 类型,这将允许我将内容放入控制台,或者进入日志文件,或更新状态标签属性等。(如果您不是这样做的,请告诉我)
所以,我注意到它倾向于以错误的顺序将消息抛出到控制台,例如处理文件 1
处理文件 4
处理文件 5
处理文件 3
全部完成!
处理文件 2
当我切换 IProgress ( MyProgress.Report()
) 时,Console.WriteLine()
它按预期工作。
这是什么原因,如何控制?
谢谢