【发布时间】:2011-03-02 03:22:35
【问题描述】:
我有一个奇怪的问题,我不太确定如何解决或解决。我正在编写一个迷你文本编辑器风格的应用程序 - RichTextBox 编辑器。
选择更改后,我需要进行一些复杂的解析 - 更新位置、选择文本和有关区域周围文本上下文的各种其他位。
由于需要一些处理,如果用户使用箭头键滚动,我不希望每次选择更改时都会触发它。我曾想过使用 Application.Idle,但它触发得太频繁了。我尝试了一个计时器,但它可能会在选择箭头仍在移动时触发。
我想到的是一种倒数计时器类型的实用程序,它会在每次触发 RichTextBox SelectionChanged 事件时重置计时器,然后当计时器达到 500 毫秒或 1000 毫秒时,它将执行复杂的处理运行。
这听起来是个好主意吗?
【问题讨论】:
-
你什么时候必须做这个处理?选择某些内容时,甚至光标位置仅更改时(SelectionLength == 0)?
标签: c# windows winforms timer idle-processing