c# - 如何扫描文件并显示当前扫描的详细信息而不使应用程序无响应?

标签 c# .net multithreading

我正在使用 C# 开发一个用于 pdf 文件管理的桌面应用程序。

当我在任何文件夹中搜索 *.pdf 时,应用程序会停止响应一段时间,这是不良行为。

我正在使用 XmlWriter 写入数据(即文件名、作者姓名、主题)。我还有一个标签来显示当前的文件扫描,但它只显示扫描完成后的最后一个文件。

最佳答案

这是一个经典问题。

基本上,显示应用程序的线程是执行所有工作的线程。因此,GUI 的任何更新/响应都必须等到完成。

解决这个问题的方法是使其成为多线程。最简单的方法是使用后台工作线程,它将执行写入搜索等操作,并让主线程保持空闲。

http://www.dotnetperls.com/backgroundworker

关于c# - 如何扫描文件并显示当前扫描的详细信息而不使应用程序无响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9768961/

相关文章:

c# - 使用 DirectX 将像素着色器应用于视频

c# - 一个 linq 语句中的 Collection<Collection<Person>> 到 Collection<Person>

c# - 如何在C#中从存储流中播放MP3?

c# - 将类作为参数发送到线程?

c# - 在 C# 中将小数或字符串转换为货币的最佳方法?

c# - Blend (XAML) 不支持我在 Image.Source 中的 png 图像

c# - 包装类似log4net的第三方记录器时要考虑的设计原则

.net - .NET 中的 AutoCAD -INSERT 命令

c# - C#.NET 中的线程和跨线程,如何从另一个线程更改 ComboBox 数据?

java - 使用线程更新 volatile boolean 数组