c# - WPF:处理另一个线程上的 touchmove 事件

标签 c# wpf multithreading event-handling

我正在编写一个包含 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/

相关文章:

JavaFx 对 EDT 的答复?

c# - 如何将信息附加到 DbContext 发出的每个 SqlCommand?

java - Protocol buffers可以跨语言使用吗

c# - LINQ Distinct 运算符,忽略大小写?

wpf - WPF 中 .NET (Rx) 的响应式扩展 - MVVM

wpf - 两个 WPF 应用程序之间的通信

c# - ASP 中的 Cache.NoSlidingExpiration - 何时重置?

c# - 使用 wpf 数据网格延迟加载

java - 媒体播放器 prepare() 方法上的 IllegalStateException

java - 带有 jmx 的动态代理会导致线程泄漏?