System.Threading.Channels yraNauji kolekcijų tipai, pristatyti po .NET Core 3.0Jis gali būti naudojamas pranešimams dėlioti į eilę, duomenims gaminti ir vartoti, o viešosios rašytojo ir skaitytojo API atitinka pranešimų gamintojus ir vartotojus, todėl kanalas taip pat tampa glaustesnis ir paprastesnis naudoti.
System.Threading.Channels biblioteka:Hipersaito prisijungimas matomas. Kanalo<T> klasė:Hipersaito prisijungimas matomas.
Kanalo tipas
"Microsoft" siūlo dviejų tipų kanalus: vienas yra susietas kanalas su ribota talpa, o kitas yra nesusietas kanalas su neribota talpa.
Ribotos talpos kanalo kūrimas:Channel.CreateBounded<string>(100);
Neribotos talpos kanalo kūrimas:Channel.CreateUnbounded<string>();
Sukurkite neribotą kanalų skaičių
Kurdami kanalą, galite nustatyti SingleWriter ir SingleReader iš ChannelOptions, kad nurodytų vieną gamintoją ir vartotoją, kai kanalas nustatytas kaip false, kai nustatytas SingleWriter = true, jis apribos tik vieno gamintojo galimybę rašyti duomenis vienu metu, SingleReader = true yra tas pats.
Pabandykite atidaryti tris gamintojo gijas ir vieną vartotojo giją, naudodami šį kodą:
Vartotojas naudoja "WaitToReadAsync", kad lauktų, kol duomenys bus perskaityti. Vartotojai bando perskaityti duomenis tik tada, kai jie yra prieinami.
Aukščiau pateiktame kode vartotojai po vieną skaito duomenis, kad atliktų operacijas, kaip jas padarytiMasinio vartotojų vartojimo duomenysO kaip dėl apdorojimo?
Sukurkite naują "ChannelReaderExtensions" plėtinį naudodami šį kodą:
Vartotojo kodą sureguliuokite taip:
(Pabaiga)
|