DiskDiff 应用的高级优化与功能实现
1. 线程操作优化
1.1 多线程扫描
为了让应用程序正常运行,扫描操作需要在不同的线程上进行,这样用户界面线程才能继续运行。可以使用 System.Threading 命名空间中的 Thread 对象来实现。以下是启动线程的代码:
public void Populate()
{
Thread t = new Thread(new ThreadStart(DoPopulate));
t.Start();
}
线程启动时调用的函数是 DoPopulate() 。创建新线程时,需要在要调用的函数上创建 ThreadStart 委托,并将其传递给线程,然后调用线程的 Start() 方法。
1.2 解决线程与界面更新的问题
当 DoTree() 函数调用 Populate() 时,线程会启动并立即返回,然后尝试重绘树状视图。但此时信息还未准备好,会导致问题。为了解决这个问题,可以在 DirectoryNode 对象中添加一个新事件,当填充函数完成时触发:
void DoPopulate()
{
DoPopulate(this);
OnPopulat
超级会员免费看
订阅专栏 解锁全文
1

被折叠的 条评论
为什么被折叠?



