首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF - Finalize和UI线程

WPF - Finalize和UI线程
EN

Stack Overflow用户
提问于 2012-03-02 17:34:59
回答 1查看 509关注 0票数 0

我有一个视图(用户控件),其中包含选项卡控件和选项卡项。当应用程序关闭时,我想删除所有选项卡项,为此,我创建了一个终结器来调用RemoveAllTabItems函数。然而,在尝试访问选项卡控件项时,我得到了一个错误:“调用线程无法访问此对象,因为另一个线程拥有它。”我试图通过使用选项卡控件dispatcher来修复错误,但这样做不会调用remove函数。

用于说明的示例代码:

代码语言:javascript
复制
private void RemoveAllTabItems()
{
    IEnumerable<TabItem> tabs = this.myTabControl.GetTabItems();
    foreach (TabItem tab in tabs)
            TryClose(tab);
}

~MyClass()
{
    this.myTabControl.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(RemoveAllTabItems));
    // Already tried these:
    // this.myTabControl.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(RemoveAllTabItems));
    // this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(RemoveAllTabItems));
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-02 19:43:39

直接调用RemoveAllTabItems函数,不使用dispatcher。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9530919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档