我需要运行任务以检查连接。
在此检查期间,不应冻结我的窗户。
因此,我启动了任务,并在此任务结束时关闭了窗口。
但这会返回一个异常: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();
});
}
Run Code Online (Sandbox Code Playgroud)
如何在任务结束时关闭窗口而不冻结它且没有此异常?(我有一个无限旋转的进度条)
我正在尝试将 TimeSpan 乘以一个系数,但我不知道该怎么做。
我试过这个:
long ErrorCoef = 25;
TimeSpan TotalTimer = new TimeSpan(10,1,2,0);
TimeSpan TotalTimer2 = TimeSpan.FromTicks(TotalTimer.Ticks + TotalTimer.Ticks * (ErrorCoef / 100));
Run Code Online (Sandbox Code Playgroud)
但(ErrorCoef/100)自动转换为 Long,所以它返回 0。
(TimeSpan.FromTicks() 方法只接受 Long 而不是 Double)