【发布时间】:2021-05-27 17:26:39
【问题描述】:
我必须创建一个 WPF 应用程序 (.NET Framework) 来创建一个带有用户界面的程序。
当 GUI 工作时,程序必须继续,无限循环,在后台读取一个文件夹,该文件夹不断填充来自外部程序的新 txt 文件。
一个例子:
- 外部程序 --> 创建新的 txt 文件并将它们放入 名为“缓冲区”的文件夹
- 我的程序 --> 在后台启动一个无限循环,读取内容 每个文件并从“缓冲区”中删除它们
此进程必须由主 GUI 控制,但不必停止其他进程。
我想我必须使用线程来并行化进程,但不幸的是我没有太多的 C# 经验,请你帮我提些建议好吗?
【问题讨论】:
-
忘记“无限循环”。您要么想通过例如 Timer 启动进程“运行”,要么使用 FileSystemWatcher(
-
注意:您可能迟早会发现您正在尝试处理仍在“传输中”的文件。您可能想从一开始就考虑这一点。
-
您可能感兴趣的另一件事是Dataflow。
-
@GazTheDestroyer 不,Task.Run 不会启动新线程,它将使用线程池中的线程。与 2010 年引入任务之前的
Dispatcher.BeginInvokekind-of-did 相同。不再需要使用BeginInvoke,绝对不是自 2012 年引入await以来
标签: c# wpf multithreading