C#实例化多个task任务 点击按钮后启动以及点击后关闭任务
在C#中,可以使用Task类实例化多个任务,并通过按钮点击来启动和关闭任务。下面是一个示例代码:
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace MultiTaskExample
{
public partial class MainForm : Form
{
private CancellationTokenSource cancellationTokenSource;
private Task[] tasks;
public MainForm()
{
InitializeComponent();
// 初始化任务数组
tasks = new Task[5];
}
private void StartButton_Click(object sender, EventArgs e)
{
// 创建一个CancellationTokenSource对象,用于取消任务
cancellationTokenSource = new CancellationTokenSource();
// 启动任务
for (int i = 0; i < tasks.Length; i++)
{
int index = i;
tasks[i] = Task.Run(() => DoWork(index, cancellationTokenSource.Token));
}
}
private void StopButton_Click(object sender, EventArgs e)
{
// 取消任务
cancellationTokenSource.Cancel();
}
private void DoWork(int index, CancellationToken cancellationToken)
{
while (!cancellationToken.IsCancellationRequested)
{
// 模拟任务执行
Console.WriteLine($"Task {index + 1} is running...");
Thread.Sleep(1000);
}
Console.WriteLine($"Task {index + 1} is stopped.");
}
}
}
在上述代码中,我们创建了一个MainForm窗体,其中包含两个按钮:StartButton和StopButton。点击StartButton按钮后,会实例化5个任务,然后通过Task.Run()方法来启动这些任务。点击StopButton按钮后,会调用cancellationTokenSource.Cancel()方法来取消任务。
请注意,这只是一个简单的示例代码,用于演示如何实例化多个任务并启动和关闭它们。在实际应用中,您可能需要根据具体需求进行适当的修改和扩展
原文地址: https://www.cveoy.top/t/topic/iMRP 著作权归作者所有。请勿转载和采集!