C# 如何在MouseWheel事件中使用多线程?

C# 如何在MouseWheel事件中使用多线程?,c#,wpf,C#,Wpf,我有一个使用UIElement控件的WPF应用程序,这个应用程序包含22个画布,这些画布是隐藏的,在每个鼠标滚轮上,这些画布的3个是可见的,我如何通过为每种类型的画布使用3个线程来实现画布的可见性/隐藏类型1:1用于多边形的画布,类型2:10用于道路的画布,类型3:11节点画布 注意:每个缩放步骤鼠标滚轮步骤,我都应该称为ViewPolygonLayer、ViewSegmentsLayers和ViewNodesLayers 如何为每个方法使用3个线程?您确定需要自己手动创建和管理所有线程吗? 您

我有一个使用UIElement控件的WPF应用程序,这个应用程序包含22个画布,这些画布是隐藏的,在每个鼠标滚轮上,这些画布的3个是可见的,我如何通过为每种类型的画布使用3个线程来实现画布的可见性/隐藏类型1:1用于多边形的画布,类型2:10用于道路的画布,类型3:11节点画布

注意:每个缩放步骤鼠标滚轮步骤,我都应该称为ViewPolygonLayer、ViewSegmentsLayers和ViewNodesLayers
如何为每个方法使用3个线程?

您确定需要自己手动创建和管理所有线程吗? 您可以编写一个可附加到这些画布的行为,在其中您可以订阅控制器事件的方法

class CanvasBehaviour : Behavior<Canvas>
    {
        protected override void OnAttached()
        {
            base.OnAttached();
            this.AssociatedObject.IsVisibleChanged += this.MyMethods;
        }

        private void MyMethods(object sender, DependencyPropertyChangedEventArgs e)
        {
            // Do what you want
        }
    }
在控制器上

<Canvas>
<i:Interaction.Behaviors>
                <myBehaviours:CanvasBehaviour />
            </i:Interaction.Behaviors>
</Canvas>

谢谢你的回答,但我必须手动管理所有这些,因为我有很多画布,每个缩放步骤我都将画布从可见更改为隐藏,反之亦然,我自己画了一张特殊的世界地图,它包含了大量的线段和节点,所以我必须将所有线段分成10个画布,将所有节点分成11个画布。我需要同时运行3个线程,而不是主线程,你能帮我吗?!然后您需要线程或任务对象,这取决于您的需要。假设您希望在下一个滚轮滚动之前完成所有这3个任务,我建议将这些方法的签名更改为Task ad Wait。
<Canvas>
<i:Interaction.Behaviors>
                <myBehaviours:CanvasBehaviour />
            </i:Interaction.Behaviors>
</Canvas>