【C#】分享带等待窗体的任务执行器一枚(【C#实用工具】带等待窗体的任务执行器分享,轻松管理异步操作)

原创
ithorizon 7个月前 (10-19) 阅读数 14 #后端开发

在现代软件开发中,异步操作已经成为节约应用程序响应性能的重要手段。但在执行异步任务时,怎样优雅地展示任务进度,同时避免阻塞主线程,是开发者常常面临的问题。今天,我将为大家分享一款实用的C#工具——带等待窗体的任务执行器,它能帮助你轻松管理异步操作,并提供友好的用户交互体验。

一、任务执行器简介

带等待窗体的任务执行器是一个基于C#开发的实用工具,它允许开发者在执行长时间运行的任务时,显示一个等待窗体,从而避免用户界面冻结。用户可以通过这个等待窗体了解任务进度,并在任务完成后自动关闭窗体。

二、功能特点

以下是带等待窗体的任务执行器的首要功能特点:

  • 拥护异步任务执行,避免主线程阻塞;
  • 提供等待窗体,展示任务进度;
  • 拥护自定义等待窗体样式;
  • 拥护任务取消和中断;
  • 易于集成和使用。

三、使用方法

下面将详细介绍怎样使用带等待窗体的任务执行器来管理异步操作。

1. 创建任务执行器实例

首先,我们需要创建一个任务执行器实例。这可以通过调用静态方法CreateExecutor实现:

var executor = TaskExecutor.CreateExecutor();

2. 配置等待窗体

接下来,我们可以配置等待窗体的样式。这里提供了一个SetWaitForm方法,允许我们自定义等待窗体的标题、内容、图标等属性:

executor.SetWaitForm("任务执行中", "请稍候...", MessageBoxIcon.Information);

3. 执行异步任务

配置完等待窗体后,我们可以通过调用ExecuteAsync方法执行异步任务。该方法接受一个Func<Task>类型的参数,用于定义异步任务的具体逻辑:

await executor.ExecuteAsync(async () =>

{

// 异步任务逻辑

for (int i = 0; i < 100; i++)

{

// 模拟任务执行过程

await Task.Delay(100);

// 更新任务进度

executor.UpdateProgress(i, 100);

}

});

4. 更新任务进度

在执行异步任务时,我们可以通过调用UpdateProgress方法更新任务进度。该方法接受两个参数,分别描述当前进度和总进度:

executor.UpdateProgress(currentProgress, totalProgress);

5. 取消或中断任务

如果需要取消或中断任务,可以调用Cancel方法。这会触发一个CancellationToken,从而终止异步任务:

executor.Cancel();

四、示例代码

下面是一个完整的示例代码,展示了怎样使用带等待窗体的任务执行器来执行一个异步任务:

using System;

using System.Threading.Tasks;

using System.Windows.Forms;

public class Program

{

public static void Main()

{

var executor = TaskExecutor.CreateExecutor();

executor.SetWaitForm("任务执行中", "请稍候...", MessageBoxIcon.Information);

executor.ExecuteAsync(async () =>

{

for (int i = 0; i < 100; i++)

{

await Task.Delay(100);

executor.UpdateProgress(i, 100);

}

}).GetAwaiter().GetResult();

MessageBox.Show("任务执行完成!");

}

}

五、总结

带等待窗体的任务执行器是一款实用的C#工具,它可以帮助开发者轻松管理异步操作,并提供友好的用户交互体验。通过使用这个工具,我们可以避免用户界面冻结,节约应用程序的响应性能。期待本文能对大家有所帮助,祝大家编程愉快!


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: 后端开发


热门