MsgQueue:可以被异步等待的线程安全队列

MsgQueue<T>,一个class,对ConcurrentQueue<T>进行了封装。它是线程安全的,而且实现了IAsyncEnumerable接口。
源代码
它使用semaphore,实现了异步等待。每次只有队列里有信息的时候,DequeAsync方法才能执行。否则该方法会一直异步等待到新信息入队列再执行完。
该类可以使用await foreach语法,但是要注意:该循环不会自然终止,只能通过传入CancelationToken来终止。详细信息可以查看这里TestIAsyncEnumerableCancel方法


本文章使用limfx的vscode插件快速发布