如何在等待结果填充我的表时避免我的表单冻结(和整个应用程序)。

时间:2012-07-22 21:45:23

标签: c# .net winforms devexpress

我的应用程序使用devExpress“Office 2007”标签式样式。当我在一个表单中,当我单击一个填充DevExpress XtraGrid的按钮时,整个应用程序将冻结,直到结果填充到表中。

如何在等待结果的同时允许用户导航到我的应用程序中的其他“标签”?

谢谢!

:)

2 个答案:

答案 0 :(得分:1)

你想要这样的东西:

Task.Factory.StartNew(
    () =>
    {
        var object = //Populate your grid

        this.yourXtraGrid.BeginInvoke(new Action(() =>
        {
            this.yourXtraGrid.ItemSource = object ;
        }));
    });

答案 1 :(得分:1)

你有没有看过即时反馈用户界面?

http://community.devexpress.com/blogs/thinking/archive/2010/11/11/winforms-grid-control-and-the-new-instant-feedback-ui.aspx

如果您熟悉PivotGrid,它类似于它们的异步模式。

根据我的经验,您无法从其他线程更新网格。