Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 导致UI冻结或变慢的操作事件_C#_.net_Wpf - Fatal编程技术网

C# 导致UI冻结或变慢的操作事件

C# 导致UI冻结或变慢的操作事件,c#,.net,wpf,C#,.net,Wpf,我正在使用multi-touch,以便在物品上进行挤压操作。我有一个DispatchTimer在一组图像中循环,当我挤压时,我会更改当前的Image控件(我扩展了该控件),这样看起来你在挤压动画 我做过各种各样的优化,但我就是不明白为什么当我的手指在屏幕上移动时,动画会冻结或变得非常慢。即使我禁用了除图像动画以外的所有功能,移动手指仍然会导致相同的问题 另外,当我使用DispatchTimer创建多个动画时,挤压其中一个动画会冻结其余动画。有什么我遗漏的吗?为什么当我在屏幕上触摸时,整个UI似乎

我正在使用multi-touch,以便在物品上进行挤压操作。我有一个
DispatchTimer
在一组图像中循环,当我挤压时,我会更改当前的
Image
控件(我扩展了该控件),这样看起来你在挤压动画

我做过各种各样的优化,但我就是不明白为什么当我的手指在屏幕上移动时,动画会冻结或变得非常慢。即使我禁用了除图像动画以外的所有功能,移动手指仍然会导致相同的问题

另外,当我使用DispatchTimer创建多个动画时,挤压其中一个动画会冻结其余动画。有什么我遗漏的吗?为什么当我在屏幕上触摸时,整个UI似乎都冻结了

冻结UI的我的操纵事件

private void _ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
    if (e.Manipulators.Count() < 2) return;

    e.Handled = true;
    return;
}
private void\u操纵delta(对象发送方,操纵deltaeventargs e)
{
if(e.manipors.Count()<2)返回;
e、 已处理=正确;
回来
}

更新:我发现即使将空事件处理程序附加到
操纵增量
事件并打开操纵,UI也会冻结。

通过在操纵处理程序外部优化我的代码解决了这一问题。

通过在操纵处理程序外部优化我的代码解决了这一问题。

这种行为是一个bug


然而,这种行为是一个bug


详细说明e.manufactors.Count()的逻辑和_-manufactionDelta.的事件连接。。描述有关实现的更多详细信息详细说明e.manufactors.Count()的逻辑和_-manufactionDelta.的事件连接。。描述有关实现的更多详细信息