跨线程错误/用户界面无响应

本文关键字:响应 用户界面 线程 错误 | 更新日期: 2023-09-27 18:25:00

我有一个WPF应用程序,其中UI线程下有一个MainWindow。我已经创建了一个线程,在其中我创建了另一个窗口。我必须在线程中创建这个窗口,因为它必须不断更新。我希望这个窗口的所有者是主窗口。所以我使用Dispatcher.Invoke来设置这个窗口的所有者。

但是当我使用Dispatcher.Invoke从线程2访问主UI线程时,我会得到一个跨线程访问异常。

我很快就会发布一些示例代码。在此之前,如果有人有任何想法,请分享。

这是我考虑实施上述方法的实际问题:

我在一个窗口中有三个折线图,每个折线图有4个系列,我使用Dispatcher.Invoke以100毫秒的间隔进行更新。正因为如此,UI变得有点慢,有时会出现

跨线程错误/用户界面无响应

我已经创建了一个线程,在其中我创建了另一个窗口。

这已经不是一个很好的主意,而且容易出现很多问题。应用程序中的所有窗口都应该由主"GUI"线程创建。

我必须在线程中创建这个窗口,因为它必须不断更新。

有一些方法可以在不在另一个线程上创建窗口的情况下实现这一点。在主线程上创建您的窗口,然后使用后台线程更新它。该后台线程可以使用Dispatcher.Invoke更新您的新窗口。