C# 如何避免在等待结果填充表时冻结表单(以及整个应用程序)。

C# 如何避免在等待结果填充表时冻结表单(以及整个应用程序)。,c#,.net,winforms,devexpress,C#,.net,Winforms,Devexpress,我的应用程序使用devExpress“Office 2007”选项卡式样式。当我在表单中并单击填充DevExpress XtraGrid的按钮时,整个应用程序将冻结,直到结果填充到表中 我如何允许用户在等待结果时导航到应用程序中的其他“选项卡” 谢谢大家! :)你想要这样的东西: Task.Factory.StartNew( () => { var object = //Populate your grid this.yourXtraGri

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

我如何允许用户在等待结果时导航到应用程序中的其他“选项卡”

谢谢大家!


:)

你想要这样的东西:

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

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

您查看过即时反馈UI吗

如果您熟悉的话,这与PivotGrid中的异步模式类似


根据我的经验,您无法从另一个线程更新网格。

使用
任务
后台工作人员
。重复:虽然总体概念是重复的,但新程序员可能很难立即建立连接。下面提供的解决方案适用于给出问题的具体答案。