今天本来想把项目相关的代码从 IDE 的核心代码中分离出来的,但折腾了半天都没有什么好的方案。于是研究了一下 dotNet 2.0 里新引入的 WinForm 控件,其中最感兴趣的要数 MenuStrip、ToolStrip、ContextMenuStrip、StatusStrip 了,想把它们用到 CommandBar 里面,替换掉现在所有的 dotNet 1.1 的控件。
研究了一阵,发现替换起来没那么容易。偶然发现了一个叫做 BackgroundWorker 的控件,看起来似乎是用来进行后台处理的。前一阵子有一个遗留问题,就是项目中文件较多时,加载速度会很慢,1000多个文件要10秒钟左右,一直没有找到好的解决办法。仔细研究了一下这个类,还好MSDN里的介绍很详细,有完整的例子,再加上本身这个类也不是很复杂。根据介绍,应该是解决多线程应用中线程安全问题的最佳方案了。晚上试验了一下,效果还不错,但还没有完全解决调试过程中跨线程调用的问题。也许是程序的其他部分也需要相应的处理吧,看来并非我想像中的那么简单,还需要再仔细研究一下。
研究了一阵,发现替换起来没那么容易。偶然发现了一个叫做 BackgroundWorker 的控件,看起来似乎是用来进行后台处理的。前一阵子有一个遗留问题,就是项目中文件较多时,加载速度会很慢,1000多个文件要10秒钟左右,一直没有找到好的解决办法。仔细研究了一下这个类,还好MSDN里的介绍很详细,有完整的例子,再加上本身这个类也不是很复杂。根据介绍,应该是解决多线程应用中线程安全问题的最佳方案了。晚上试验了一下,效果还不错,但还没有完全解决调试过程中跨线程调用的问题。也许是程序的其他部分也需要相应的处理吧,看来并非我想像中的那么简单,还需要再仔细研究一下。
浙公网安备 33010602011771号