EventSource.AddSolitaryHandler<T>(T, List<T>, Delegate, String) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Adiciona um único manipulador de eventos para um evento.
protected static void AddSolitaryHandler<T> (T primaryEventSource, ref System.Collections.Generic.List<T> secondaryEventSources, Delegate handler, string key = "") where T : Microsoft.VisualStudio.Shell.Events.EventSourcenew();
static member AddSolitaryHandler : 'T * List * Delegate * string -> unit (requires 'T :> Microsoft.VisualStudio.Shell.Events.EventSource and 'T : (new : unit -> 'T))
Protected Shared Sub AddSolitaryHandler(Of T As {EventSourceNew}) (primaryEventSource As T, ByRef secondaryEventSources As List(Of T), handler As Delegate, Optional key As String = "")
Parâmetros de tipo
- T
O tipo de EventSource-derivado que expõe eventos gerenciados para eventos COM do Shell.
Parâmetros
- primaryEventSource
- T
A instância primária do T .
- secondaryEventSources
- List<T>
A coleção de instâncias secundárias do T .
- handler
- Delegate
O manipulador de eventos a ser adicionado.
- key
- String
A chave que identifica o evento a ser manipulado.
Comentários
Alguns eventos (por exemplo, IVsSolutionEvents. OnAfterOpenProject) são tratados de forma especial pelo shell. Para permanecer responsivo durante o ASL, os coletores que tratam OnAfterOpenProject são chamados em lotes, não ocupando mais do que uma pequena quantidade de tempo por lote. Se algum coletor permanecer para ser chamado quando a fatia do lote estiver ativa, uma tarefa será criada para lidar com o próximo lote e assim por diante.
Os objetos EventSource são coletores de eventos únicos no que diz respeito ao shell, mas eventos .NET comuns podem ter vários manipuladores. Esses manipuladores não podem ser divididos pelo shell no modo como os coletores de eventos de shell normais (por exemplo, IVsSolutionEvents) podem. Para permitir que objetos EventSource participem de otimizações de repsonsiveness avançadas, como aquelas implementadas para IVsSolutionEvents. OnAfterOpenProject, Add/RemoveSolitaryHandler organize para um evento EventSource para ter no máximo um único manipulador gerenciado. Se obtivermos manipuladores gerenciados adicionais para o evento, criaremos instâncias secundárias do T para esses manipuladores gerenciados, e essas instâncias manipularão *apenas* os eventos solitários.