Windows窗体中的异步
本文关键字:异步 窗体 Windows | 更新日期: 2023-09-27 18:29:25
是否可以像在Windows 8上的Metro应用程序中那样在WinForms中执行异步操作?
例如:
protected async void Something()
{
await FileIO.Something();
}
在WinForms中使用会非常酷。
是。
Async是一个C#5.0语言功能,只要您有支持的BCL类型(.Net 4.5或NuGet中的Microsoft.BCL.Async),它就可以在任何地方工作。
但是,除了事件处理程序之外,永远不应该在任何地方编写async void
。
是的,您可以在winform中使用async await获得异步UI。您必须使用Tast.Run方法在事件处理程序中启动异步任务,而不必等待它。若要访问任何控件属性或方法,必须使用control.Invoke方法在主线程中进行访问。
最后,通过这种方法,ui始终保持活动状态,并且可以在先前代码运行时处理其他事件。然后,当代码运行