A napi fejlesztésben sorokat használhatunk, amelyek olyan tárolószerkezetek, amelyek képesek "elsőként be, elsőként ki" (elsőként be, elsőként ki) megoldást érnek el.
Alkalmazási helyzetek: naplók írása, e-mailek küldése stb
Ha minden felhasználó interfésznaplóját kell rögzítenünk, aki az adatainkat kéri, nem kell minden alkalommal naplót írnunk, amikor a felhasználó kéri, a napló tartalmát a sorba tehetjük, és hagyjuk, hogy más szálak hajtsák végre, hogy ne rontsa az alkalmazás hatékonyságát.
Egy másik előny, hogy az adatok hozzáadása a sorhoz egyidős állapot esetén, egyetlen szál használatával a sor adatainak végrehajtására sok kivételt elkerülhet, ha egyidejű (többszálas) ugyanahhoz a fizikai fájlhoz való hozzáférés kivételeket okoz. (a rendelkezésre állástól függően)
Queue univerzális megközelítés:
Ez egy absztrakt osztály, és ezt az absztrakciós osztályt örökölni kell, és meg kell valósítani az Execute abstraction method-ot. Mivel nem tudom, milyen típusú adatot szeretnél feldolgozni, itt generikusokat használnak, vagyis az entitás string típusú, a metódusparaméterek string típusúak, és az az adatok a feldolgozás, mint string típusú adatok.
A ConcurrentQueue szálbiztonsági sor biztosítja, hogy többszálas környezetben ne legyenek kivételek.
ManualResetEvent a szál jelének vezérléséhez,Korábban néhány másodpercenként vagy percenként ellenőriztük a sorban az adatotMost hozzáadjuk az adatokat a sorhoz, és csak egy jelet kell átadni!
Használat:
(Vége)
|