Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 6386|Odpowiedź: 3

[Źródło] Wykorzystywane są kanały kolejki wysokiej wydajności .NET Core

[Skopiuj link]
Opublikowano 2023-5-8 22:11:01 | | | |
System.Threading.Channels toNowe typy kolekcji wprowadzone po .NET Core 3.0Może być używany do kolejkowania wiadomości, generowania i konsumowania danych, a publiczne API Writer i Reader odpowiadają producentom i odbiorcom wiadomości, co również sprawia, że Channel jest bardziej zwięzły i łatwy w obsłudze.

.NET/C# opiera się na kolejce zadań w tle BlockingCollection
https://www.itsvse.com/thread-9528-1-1.html


Biblioteka System.Threading.Channels:Logowanie do linku jest widoczne.
<T> Klasa kanału:Logowanie do linku jest widoczne.

Typ kanału

Microsoft oferuje dwa typy kanałów: jeden to kanał powiązany o ograniczonej pojemności, a drugi to kanał niezwiązany z nieograniczoną pojemnością.

Stwórz kanał o ograniczonej pojemności:Channel.CreateBounded<string>(100);
Stwórz kanał o nieograniczonej pojemności:Channel.CreateUnbounded<string>();

Twórz nieograniczoną liczbę kanałów

Podczas tworzenia kanału możesz ustawić SingleWriter i SingleReader w ChannelOptions tak, aby określały pojedynczego producenta i konsumenta, gdy kanał jest ustawiony na false; gdy ustawione jest SingleWriter = true, ogranicza się tylko jeden producent do zapisu danych jednocześnie, SingleReader = true jest tym samym.


Spróbuj otworzyć trzy wątki producentów i jeden wątek konsumencki z następującym kodem:



Konsument korzysta z WaitToReadAsync, aby oczekiwać na odczyt danych. Konsumenci próbują odczytać dane dopiero po ich dostępności.


W powyższym kodzie konsumenci czytają dane pojedynczo, aby wykonać operacje i jak je wytworzyćDane o zużyciu masowym przez konsumentówA co z kawałkiem obróbki?

Stwórz nowe rozszerzenie ChannelReaderExtensions z następującym kodem:


Dostosuj kod konsumencki w następujący sposób:



(Koniec)




Poprzedni:ASP.NET Core (18) Dostosowanie prostej pamięci wyjściowej OutputCache
Następny:[Rzeczywista walka]. Biblioteka lokalizatorów adresów IP offline (NET/C#)
Opublikowano 2023-5-8 22:50:27 |
Naucz się uczyć
Opublikowano 2023-5-12 10:07:46 |
Naucz się uczyć
Opublikowano 2023-5-16 o 17:21:37 |
Naucz się uczyć
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com