Pergunta

Eu preciso de uma alternativa para Dispatcher (.NET 3.0) Para usar para um serviço Windows (feito no .NET 2.0). Você pode me dar uma ideia de como conseguir algo assim ou me apontar alguns links?

Eu sei que um despachante tem um SynchronizationContext atrás, mas não sei como posso usar um SynchronizationContext em um serviço.

Se você acha que eu deveria seguir o Dispatcher (.NET 3.0) ... Como posso manipulá -lo (OnServiceStop, OnServiceStart)

editado: Mais detalhes (Veja também...aqui)

Ideia é que eu gostaria de hospedar meu serviço Windows algumas extensões/plugins que se comunicariam entre cada um através de um método ExecuteCommand(type, params).

Esse método também levanta um evento para o serviço para receber resultados, se for executado de dentro do plug -in. Cada plugin pode ter seu próprio tópico de onde chama esse método ExecuteCommand Então, eu gostaria de reunir e sincronizar todas as chamadas em um thread (encadeamento de serviço principal) para retornar o resultado adequadamente.

É por isso que o despachante entrou em jogo. Mas eu gostaria de ter, talvez, algo no .net 2.0 ou você acha que o despachante é bom no meu caso?

Obrigado.

Foi útil?

Solução

Os serviços do Windows não têm nada como o Dispatcher (ou loop de mensagens nos formulários do Windows). Se você deseja marcar de um thread para outro, o thread "Target" terá que estar executando seu próprio tipo de loop de mensagem.

Se você pudesse nos contar mais sobre o que está tentando alcançar, tornaria mais fácil ajudá -lo.

EDIT: Ok, parece que basicamente quer uma fila de produtores/consumidores: um thread espera até que algo esteja presente na fila e o processe. Os produtores podem adicionar à fila sempre que quiserem.

eu tenho um Implementação muito simples de uma fila de produtor/consumidor No meu tutorial de encadeamento, mas pode haver implementações mais avançadas. (.NET 4 facilita isso, mas é mais difícil no .NET 2.) Se você Faz Pegue minha implementação, você deseja pensar em torná -lo genérico e adicionar condições de rescisão. Joe Albahari tem Outra implementação que você deve olhar, também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top