如何从另一个线程更改当前显示的窗口? WPF

时间:2019-07-02 16:50:16

标签: c# wpf invoke

我有一个客户端服务器应用程序(Trivia Game)。

我的问题是: 当客户端位于“ waitingRoom”中时,程序会启动一个单独的线程,每秒向服务器询问游戏状态(以查看是否有其他客户端加入,以查看游戏是否开始或管理员是否关闭了房间)。

就我而言,当管理员关闭房间时,所有客户端都需要返回菜单屏幕。单独的线程收到一条消息,告诉他关闭房间,现在该线程需要更改当前显示的窗口。

我尝试使用Dispatcher.Invoke,但没有成功:

UIView.animate

Globals.SOCKET :(套接字) Globals.USER :(字符串)

编辑:此代码无效,我收到的错误是其他线程(主线程)拥有该属性。

第二次编辑:

UIView.animate(withDuration: 1.0, delay: 0.0, options: [.curveEaseOut], animations: {
  self.backgroundColor = someNewColour
  //Generally 
  //myView.backgroundColor = someNewColor
}, nil)

此代码确实有效,我更改了当前显示的listBox中的项目。

0 个答案:

没有答案