我在mouseEnter上有一个eventHandler,其中我有简单的线性复杂性代码,我在List中添加和删除一些值。问题是,当我慢慢地勾选事件时,一切正常,但是当我以正常速度(用户会这样做)或快速打勾时,程序会跳过代码的一部分(我可以看作它的绘图)一些对象)导致List不稳定。
我听说通过锁定没有办法做到这一点,因为所有的UI调用都是在一个线程中处理的。
我需要完整且正确地执行代码,以便忽略某些事件(鼠标输入)的价格。
这是处理函数:
public static void HandleMouseEnter(object sender)
{
for (int i = 0; i < currentlyPrebuilt.Count; i++)
{
currentlyPrebuilt[i].Image = null;
}
currentlyPrebuilt.Clear();
for (int i = 1; i <= sender.x - startingPoint.x; i++)
{
currentlyPrebuilt.Add(pictures[i]);
pictures[i].Image = "sth.jpg";
}
}
}
如果使用鼠标移动太快,它就不会为列表中的所有图像设置null