日期:2014-05-17  浏览次数:20855 次

|ZYCWPF| 开源的WPF-Find-Replace-Dialog我发现当文档内容大的时候查询替换非常之慢,如何进行优化呢 谢谢
http://www.codeproject.com/Articles/173509/A-Universal-WPF-Find-Replace-Dialog

测试文件查的和替换还是很快的,
但是如果是在一个内容很多,很复杂的RichTextBox做替换的话会很慢

要怎么进行优化呢?

谢谢
------解决方案--------------------
别用WPF就是最好的优化


------解决方案--------------------
自己看代码 慢慢研究吧
------解决方案--------------------
我用performance analyzer看了下,主要耗时在RichTextBoxAdapter.GetPoint方法。
这个方法里用了TextRange.Text,等于每次都从文档开头开始提取一个纯文本字符串,这在TextPoint指向比较后面的时候是很慢的。

我试了改成用TextPoint.GetNextInsertionPosition方法,这个是比较快速的。但是有时候不能定位到很准,等我再看下。

你也可以自己研究下,参看这篇文章:
http://social.msdn.microsoft.com/forums/en-US/wpf/thread/a2988ae8-e7b8-4a62-a34f-b851aaf13886#search_text
------解决方案--------------------
全部替换不能循环去调用每次替换的方法,事实上全部替换不用挨个定位光标,可以冻结住编辑器,一次性替换完成,再设置回来。