关闭窗口时出现线程问题

时间:2017-06-05 05:38:57

标签: c# wpf multithreading mvvm

我使用以下代码从viewmodel关闭我的窗口。当方法变为异步时,代码似乎正常工作。异常本身是:调用线程无法访问此对象,因为另一个线程拥有它

在ViewModel中:

public Action CloseAction  { get; set;}

并在View构造函数中:

private View()
{
    InitializeComponent();
    ViewModel vm = new ViewModel();
    this.DataContext = vm;
    if ( vm.CloseAction == null )
        vm.CloseAction = new Action(this.Close);
}

调用命令在

下面完成
private async void LoadGroups()
{
    try
    {
        // Do stuff i.e. post some data
    }
    catch (System.Exception ex)
    {
        CloseWindow();
        // Application.Current.Dispatcher.BeginInvoke(new Action(() => CloseWindow())); <-- Null exception
    }
}

所以问题是如何使用上面的代码或任何其他替代方法有效地关闭wpf窗口。

0 个答案:

没有答案