【问题标题】:Invoke SolidColorBrush [duplicate]调用 SolidColorBrush [重复]
【发布时间】:2018-11-07 17:14:21
【问题描述】:

我怎样才能调用,所以我不会得到以下错误?

System.InvalidOperationException:

调用线程无法访问此对象,因为其他线程拥有它。

 // Method 1
                    if (((SolidColorBrush)RRefresh.Fill).Color == CustomGreen.Color && Foldername == string.Empty)
                    {
                        Application.Current.Dispatcher.BeginInvoke(new Action(() =>
                        {
                            Driver.Navigate().Refresh();
                        }));
                    }

// Method 2
        if (Driver != null && ((SolidColorBrush)RRefresh.Fill).Color == CustomGreen.Color)
        {
            Application.Current.Dispatcher.BeginInvoke(new Action(() =>
            {
                Driver.Navigate().Refresh();
            }));
        }

【问题讨论】:

  • 将其包装在 Application.Dispatcher.BeginInvoke 方法中。

标签: c#


【解决方案1】:

您可以使用control.Dispatcher.CheckAccess() 来检查当前线程是否拥有该控件。如果它确实拥有它。 否则使用此方法:

this.Dispatcher.Invoke(() =>
{
    ...// your code here.
});

【讨论】:

    猜你喜欢
    • 2018-01-03
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    • 2021-02-24
    • 2013-12-13
    • 2023-04-09
    相关资源
    最近更新 更多