gpt4 book ai didi

c# - Win10 中的拼写检查文本框 - 慢

转载 作者:太空宇宙 更新时间:2023-11-03 17:39:38 24 4
gpt4 key购买 nike

我在 WPF 中使用内置的拼写检查器。在我让用户开始升级到 Windows 10 之前,它工作得很好......我认为问题在于它被用于很多小文本框。我的应用程序显示了一个网格(Telerik 的 TreeListView),其中包含我要检查拼写的列之一的文本框。我需要能够为拼写检查器提供自定义词典;我能够做到这一点的唯一方法是订阅文本框加载事件并添加如下路径:

        TextBox tb = sender as TextBox;
tb.ContextMenu = ctx_Spell;
IList dcts = SpellCheck.GetCustomDictionaries(tb);

dictsList.Add(dcts);
if (KMApplication.Settings.UserDictionary != null)
{ dcts.Add(KMApplication.Settings.UserDictionary); }

foreach (Uri dct in KMApplication.Settings.RevitDictonaries)
{ dcts.Add(dct); }

当然,这会为每个文本框调用添加,这看起来非常浪费,但它似乎工作得很好,几乎没有明显的延迟,而且只有在加载时才会出现。但是现在在 Windows 10 上,这似乎是一个荒谬的滞后。在我的 Windows 8.1 机器上,我加载了一个包含几千行的文件,它在大约 3 或 4 秒内出现;在我的 Windows 10 盒子上,它会在大约 10-15 分钟内出现。如果我注释掉上面代码的自定义词典部分,那么在任何一台机器上它都会回到大约 3-4 秒。

有谁知道更好的方法吗?或者在 Win10 中是否有解决方法?

最佳答案

我们遇到了类似的问题,并且通过避免在加载期间在每个 TextBox 控件上重新注册自定义词典来提高性能。

不幸的是,我们遇到了自定义词典处理方式的另一个问题,如果您只有少量的 TextBox 控件,这也会导致加载时间非常长。

当 WPF 应用程序在 Windows 8.1/10 上的 .NET 4.6.1 中注册自定义字典时,将在 %localappdata%\Temp 中创建一个临时字典文件,并在注册表项“Computer”的多字符串值 _GLOBAL_ 中注册\HKEY_CURRENT_USER\Software\Microsoft\Spelling\Dictionaries"。

如果 _GLOBAL_ 值最终引用了一个不存在的字典文件,则每当启用拼写检查的控件被初始化时,应用程序开始表现出非常缓慢的加载。

这可以通过使用 Visual Studio 中的“停止调试”按钮,然后在经过足够的时间删除临时字典文件后运行磁盘清理或 CCleaner 来实现。

我们设法通过清除指向不存在的词典文件的任何链接的 _GLOBAL_ 值来解决此问题。我们的应用程序开始按预期工作。

我们提出了以下连接错误: https://connect.microsoft.com/VisualStudio/feedback/details/2153484

关于c# - Win10 中的拼写检查文本框 - 慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34167463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com