簡體   English   中英

.NET 相當於 Android SDK 的 AsyncTask(我需要在后台線程上執行操作時顯示進度條)

[英].NET equivalent of Android SDK's AsyncTask (i need to display a progress bar while executing operations on a backround thread)

我在一個基本的 C# .NET 4.0 WinForms 應用程序中。 我想要做的是編寫一些邏輯來在后台線程上執行后台操作時在 GUI 線程上顯示進度條。

Android 已經實現了AsyncTask類,它有一些需要重寫的方法:onPreExecute、doInBackground、onProgressUpdate 和 onPostExecute。 OnPreExecute 您可以顯示進度條,並且在 PostExecute(當 doInBackground 方法返回時)您可以隱藏它。

在這里讀到 .NET 4.5 內置了類似的東西。 .NET 4.0 中是否有類似的東西? 如果不是,那么實現類似 android 的 AsyncTask 之類的東西是個好主意還是在 C# 中有更傳統的方法來做到這一點?

問候,

.NET 中最接近的是使用這些事件的BackgroundWorker類:

  • DoWork - 在調用RunWorkerAsync時發生。
  • ProgressChanged - 在調用ReportProgress時發生。
  • RunWorkerCompleted - 在后台操作完成、取消或引發異常時發生。

看看BackgroundWorker類。 它提供了您描述的所有功能。

您可以使用 BackgroundWorker 創建自己的抽象類,如此處所述AsyncTask using BackgroundWorker

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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