c# - .NET 相当于 Android SDK AsyncTask(我需要在后台线程上执行操作时显示进度条)

标签 c# multithreading progress-bar

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

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

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

问候,

最佳答案

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

  • DoWork - 调用 RunWorkerAsync 时发生。
  • ProgressChanged - 调用 ReportProgress 时发生。
  • RunWorkerCompleted - 当后台操作已完成、已取消或引发异常时发生。

关于c# - .NET 相当于 Android SDK AsyncTask(我需要在后台线程上执行操作时显示进度条),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13181350/

相关文章:

c# - 为什么线性探测仅适用于相对主要的步骤?

c# - 如何将正确的具体类注入(inject)到封闭系统中

c++ - 以下代码在并发情况下的可能结果是什么?

iphone - 建立一个漂亮的进度条

twitter-bootstrap - Bootstrap - 将进度条值放在右侧

c# - 如何在 .NET 测试中传入模拟的 HttpClient?

c# - 为什么自定义 WinForms 控件在绘制时不遵守构造函数中设置的属性?

C#并行IO完成端口

android - 如何在主 UI 线程之外编程

java - 在通知区域显示加载 Activity 进度条