2

我在一个基本的 C# .NET 4.0 WinForms 应用程序中。我想要做的是编写一些逻辑来在后台线程上执行后台操作时在 GUI 线程上显示进度条。

Android 已经实现了AsyncTask类,它有一些需要重写的方法:onPreExecute、doInBackground、onProgressUpdate 和 onPostExecute。OnPreExecute 你可以显示进度条,在 PostExecute (当 doInBackground 方法返回时)你可以隐藏它。

我在这里读到 .NET 4.5 内置了类似的东西。.NET 4.0 中有类似的东西吗?如果没有,实现类似 android 的 AsyncTask 是一个好主意,还是在 C# 中有更传统的方法来做到这一点?

问候,

4

3 回答 3

3

.NET 中最接近的就是BackgroundWorker类,使用这些事件:

  • DoWork- 在RunWorkerAsync被调用时发生。
  • ProgressChanged- 在ReportProgress被调用时发生。
  • RunWorkerCompleted- 在后台操作完成、取消或引发异常时发生。
于 2012-11-01T16:26:48.590 回答
1

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

于 2012-11-01T16:27:16.453 回答
0

您可以使用 BackgroundWorker 创建自己的抽象类,如此处所述AsyncTask using BackgroundWorker

于 2020-01-29T10:16:58.703 回答