【发布时间】:2019-04-09 09:35:03
【问题描述】:
我需要运行一个任务来检查连接。
在此检查期间不应冻结我的窗户。
所以我启动任务,并在任务结束时关闭我的窗口。
但这会返回一个异常:InvalidOperationException:'调用线程无法访问这个对象,因为另一个线程拥有它'。
像这样:
private void Window_ContentRendered(object sender, System.EventArgs e)
{
Task.Run(() =>
{
ConnectionState = false;
if (NetworkTools.CheckGlobalConnection() == (ConnectionStatus.NetworkConnectionSuccess, ConnectionStatus.ServerConnectionSuccess))
{
ConnectionState = true;
}
this.Close();
});
}
如何在任务结束时关闭我的窗口而不冻结它并且没有这个异常? (我有一个无限旋转的进度条)
【问题讨论】:
-
调用它? UI 上的任何内容都必须从线程中调用
-
使用应用程序线程作为代理关闭窗口