簡體   English   中英

Windows窗體中的異步

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM