Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 6386|Отговор: 3

[Източник] Използват се канали с високопроизводителна опашка .NET Core

[Копирай линк]
Публикувано на 2023-5-8 22:11:01 | | | |
System.Threading.Channels еВъведени са нови типове колекции след .NET Core 3.0Може да се използва за подреждане на съобщения, създаване и консумация на данни, а публичните API за писател и четец съответстват на производителите и потребителите на съобщения, което също прави Channel по-стегнат и лесен за използване.

.NET/C# е базиран на фоновата опашка на задачи BlockingCollection
https://www.itsvse.com/thread-9528-1-1.html


Библиотека System.Threading.Channels:Входът към хиперлинк е видим.
<T> Клас канал:Входът към хиперлинк е видим.

Тип канал

Microsoft предлага два типа канали – единият е ограничен канал с ограничен капацитет и един е неограничен канал с неограничен капацитет.

Създайте канал с ограничен капацитет:Channel.CreateBounded<string>(100);
Създайте канал с неограничен капацитет:Channel.CreateUnbounded<string>();

Създаване на неограничени канали

При създаване на канал можете да зададете SingleWriter и SingleReader на ChannelOptions да задават един производител и потребител, когато каналът е настроен на false, когато SingleWriter = true е зададен, ще ограничи само един производител да записва данни едновременно, SingleReader = true е същото.


Опитайте да отворите три производствени нишки и една потребителска нишка със следния код:



Потребителят използва WaitToReadAsync, за да изчака данните да бъдат прочетени. Потребителите се опитват да прочетат данните само след като са налични.


В горния код потребителите четат данните един по един, за да извършат операции и как да ги направятДанни за масово потребителско потреблениеА какво ще кажеш за обработка?

Създайте ново разширение за ChannelReaderExtensions със следния код:


Коригирайте потребителския код по следния начин:



(Край)




Предишен:ASP.NET Core (18) Персонализиране на прост OutputCache изходен кеш
Следващ:[Истински бой]. NET/C# офлайн IP адресна (домашна) библиотека за локатор
Публикувано на 2023-5-8 22:50:27 |
Научи се да учиш
Публикувано на 2023-5-12 10:07:46 |
Научи се да учиш
Публикувано на 2023-5-16 17:21:37 |
Научи се да учиш
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com