[英]Async in Windows Forms
是否可以像在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
s。
是的,您可以在winform中使用async-await獲取異步UI。 您必須使用Tast.Run方法在事件處理程序中啟動異步任務,而無需等待它。 要訪問任何控件屬性或方法,必須使用Control.Invoke方法將其轉換為主線程。
最后,通過這種方法,ui保持活躍狀態,並且可以在正常代碼運行時處理其他事件。 然后你必須編寫代碼來在代碼運行時禁用啟用按鈕或其他事件處理
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.