/ / C # odovzdávanie udalostí v aplikáciách s jedným vláknom - C #

C # udalosť odovzdávanie aplikácií s jedným závitom - c #

Mám jednu závitovú C # zostavu (môj klient)ktorá sa prihlási na odber viacerých udalostí pomocou toho istého obslužného programu udalostí (krátke tlačené vyhlásenie). Emitor udalostí (server) je viacvláknový, a preto by mohol na mojom jednom vláknovom klientovi simultánne spustiť dve udalosti.

Ako to rieši platforma .NET? Je v rade udalosti? Vypustí sa udalosť, ktorú nie je možné spracovať, pretože obsluha udalosti je zaneprázdnená?

Pozadie

Pýtal som sa predchádzajúcu otázku ale súdiac podľa vysvetlenia, ktoré som potreboval dodať, myslím si, že by som mohol urobiť oveľa lepšiu prácu pri abstrahovaní mojej otázky, aby bola všeobecnejšia a užitočnejšia pre ostatných.

odpovede:

4 pre odpoveď č. 1

Udalosti v C # a .NET prirodzene nevedia o vláknach vôbec. V zásade sú iba ďalšou zapuzdrovacou vrstvou pre delegátov. Obslužné rutiny sa budú volať v ľubovoľnom vlákne, ktoré sa „zvyšovateľ udalostí“ rozhodne použiť. mohol rozhodnúť o spustení každého obslužného programu udalosti na samostatnom vlákne ... alebo môže na volanie použiť jedno samostatné vlákno všetko manipulátory, jeden za druhým ... alebo by to mohlo robiť synchrónne v rámci vlastného „normálneho“ vlákna.