普通的异步队列可以回看我之前一篇博客:https://www.cnblogs.com/log9527blog/p/16517315.html
但是之前实现的异步队列中,任务如果出现await等待,会认为该任务已经完成,并且开始下一个任务。所有为了实现异步队列中等待await执行完毕再执行下一个任务,下面重写了新的异步队列:
using System;
using System.Collections.Concurrent;
using System.Threading;
using System.Threading.Tasks;
namespace Text
{
/// <summary>
/// 异步任务队列
/// <para>同步执行,等待委托内的await完成再执行下一个委托,并且自动取消中间的任务</para>
/// </summary>
public class SynchronizeTaskQueue
{
#region 执行
/// <summary>
/// 执行多个同步操作(同步执行,取消中间未执行的任务,传进来的委托需要try...catch...)
/// </summary>
/// <param name="func">异步操作</param&g

该文章介绍了一个重新设计的异步队列,它能确保任务按照顺序同步执行,等待await表达式完成后才进行下一个任务,并在执行过程中自动取消未开始的任务。通过使用SemaphoreSlim和ConcurrentQueue实现并发控制和任务管理。
最低0.47元/天 解锁文章
719

被折叠的 条评论
为什么被折叠?



