/ Entrega de evento / C # em aplicativos de thread único - c #

Evento C # entregando em aplicativos com encadeamento único - c #

Eu tenho um único assembly C # encadeado (meu cliente)que assina vários eventos usando o mesmo manipulador de eventos (uma declaração curta de impressão). O emissor dos eventos (o servidor) é multitreaded e, portanto, pode disparar dois eventos simultaneamente no meu único cliente encadeado.

Como a plataforma .NET lida com isso? Isso enfileira os eventos? Ele descarta um evento que não pode ser processado porque o manipulador de eventos já está ocupado?

fundo

Eu pedi um pergunta anterior mas, a julgar pelo esclarecimento que eu precisava acrescentar, acho que poderia fazer um trabalho muito melhor abstraindo minha pergunta para torná-la mais geral e útil para os outros.

Respostas:

4 para resposta № 1

Eventos em C # e .NET não sabem naturalmente sobre threads em absoluto. Eles são apenas uma camada extra de encapsulamento para os delegados, basicamente. Os manipuladores serão chamados em qualquer thread que o "gerador de eventos" escolher usar. poderia decide acionar cada manipulador de eventos em um thread separado ... ou pode usar um thread separado para chamadas todos manipuladores, um após o outro ... ou poderia fazer isso de forma síncrona dentro de seu próprio segmento "normal".