在我的 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(使用前将#替换为@)