繁体   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