执行按钮单击时使 wpf UI 响应

2024-05-06

在我的 wpf (c#) 应用程序中,当用户按下按钮时会执行一个很长的过程。当按下按钮直到执行完整的代码时,窗口将冻结,用户无法在窗口中执行任何其他任务。如何使按钮单击代码作为后台进程,以便窗口响应用户。我尝试过以下方法,但没有成功。

private void btn_convert_Click(object sender, RoutedEventArgs e)
{
    Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, 
    new Action(() => { 

         WorkerMethod();
    }));
}

其中 WorkerMethod 是包含整个代码的函数。有什么建议。

Regards,
桑吉塔


如果您的目标是 .NET 4.5,则可以使用async/await使您的 UI 具有响应能力:

private async void btn_convert_Click(object sender, RoutedEventArgs e)
{
    await WorkerMethod();
}

修改你的WorkerMethod:

private Task WorkerMethod()
{
    return Task.Run(() =>
        {
           // your long running task here
        });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

执行按钮单击时使 wpf UI 响应 的相关文章

随机推荐