我没有在任何地方找到答案,所以我会提出新的问题。我有datagrid,其中是SelectionChanged事件后的一些代码。以及DoubleClick上的一些代码(尝试过MouseDoubleClick,CellDoubleClick和DoubleClick)。在快速PC上没有问题,但是在我的带有Intel Atom的Windows 8平板电脑上,应用程序速度较慢,因为SelectionChange而没有触发DoubleClick。
如果我在SelectionChange上评论代码,则会触发DoubleClick。但是当我离开代码时,它看起来很慢,以至于它无法识别DoubleClick。我必须快速点击(7-8次)来解雇它。
我以为有某种排队。因此,至少应在SelectionChange之后触发DoubleClick。
我不能等待在SelectionChange被激活后查看它是否不是DoubleClick。然后即使在快速PC上看起来应用程序也会很慢。
这个事件怎么会丢失?
答案 0 :(得分:1)
听起来你可能正在主线程上工作,尝试使用不同的线程进行处理,释放你的UI线程以接收双击。
您需要进行一些同步,但如果正确完成,它应该可以减轻竞争条件。
答案 1 :(得分:1)
您不应该在事件处理程序中进行任何长时间的计算。我建议您开始一个新的thread(或从threadpool借一个,或者开始一个新的task),并在后台线程上执行运行时间更长的代码。