[教程]VirtualTreeView 组件中,释放时可能造成假死问题修复

在 TBaseVirtualTree.Destroy 函数里,有一段代码是这么写的: 注意这个 while 循环,因为它调用的 CheckSynchronize 去检查后台线程是不是异步调用了自己,但它没有考虑如果有其它线程或者同步代码在频繁 TThread.Synchronize 或 TThread.Queue/TT

[教程]高效处理在主线程中显示后台线程处理进度

先看经典的处理方法: 我们需要更新进度时,将其切换到主线程,并更新进度显示。我们测试显示用了32735ms,也就是说100万次进度更新,用了约33秒。 接下来我们来看下优化后的代码: 对的,你没看错,我们将 FProgress.Update 直接在后台线程调用了。我们对其代码进行了逻辑隔离,实测 100 万次进度更新,