我正在编写一个包含 1000 张图像的复杂 UI,其中约 300 张会随着用户的触摸(最靠近触摸的那些)移动。为此,每次调用处理程序时,我都必须为每个图像计算图像和触摸点之间的距离。不幸的是,当有多个用户时(我们计划在支持大触摸的电视上使用它),应用程序往往会滞后。所以我的想法是为每次触摸创建一个新线程,并在新线程中使用 Application.Current.Dispatcher 更新 UI:
Application.Current.Dispatcher.Invoke(new Action(() =>
{
//Update the UI
}));
这是否可能和/或有更好的方法吗?
此外:如何在另一个线程中处理 TouchMove 事件?
谢谢。
最佳答案
Application.Current.Dispatcher.Invoke(some action)
不调用单独的线程,它在当前线程上异步执行指定的操作,在您的例子中是 UI 线程。
查看BackgroundWorker .这将调用一个单独的线程,该线程可用于进行密集计算,并具有 RunWorkerCompleted
回调以在计算完成后更新 UI。
关于c# - WPF:处理另一个线程上的 touchmove 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25844479/