Exemplo do FREETHRD: cliente multithread e disponível-thread servidor com o compilador COM suporte
Este exemplo demonstra um cliente multithread e um servidor de segmentação disponível com suporte do compilador COM.
Este exemplo consiste as seguintes partes:
Freclien, um cliente multithread
Freserve, um servidor em processo de segmentação disponível
Observação de segurança: |
---|
Este código de exemplo é fornecido para ilustrar um conceito e não deve ser usado em aplicativos ou sites da Web, pois ele não pode ilustrar sistema autônomo práticas de codificação mais seguras.Microsoft sistema autônomo sumes nenhuma responsabilidade por danos incidentais ou conseqüenciais deve o código de exemplo ser usado para fins diferentes de sistema autônomo se destina. |
Para obter exemplos e instruções para instalá-los:
Sobre o Visual Studio Ajuda menu, clicar Exemplos.
Para obter mais informações, consulte Localizando arquivos de exemplo.
A versão mais recente e a lista completa das Exemplos está disponível online a partir de O Visual Studio 2008 Exemplos página.
Você também pode localizar exemplos no disco rígido do seu computador.Por padrão, exemplos e um arquivo Leiame são copiados para uma pasta sob \programa Files\Visual Studio 9.0\Samples\.Para edições Express do Visual Studio, todos os exemplos estão localizados online.
Criando e executando o exemplo
Para compilação e executar esse exemplo
em aberto freethrd.sln solução.
compilação o projeto de servidor e, em seguida, compilação projeto cliente.
Criar o projeto de cliente do projeto de inicialização (clicar com o botão direito do mouse o projeto nó e clique em conjunto sistema autônomo projeto de inicialização) e executar a amostra.
Como funciona o exemplo
O exemplo Freclien gera vários threads para criar e usar o COBall Objeto COM fornecida pelo servidor Freserve segmentação disponível. The COBall objeto propriamente dito não gera nenhum thread; em vez disso, ele passivamente responde a IBall solicitações de interface de vários threads de cliente possível. O cliente Freclien cria e controla um COBall objeto por meio do IBall interface que expõe o objeto. sistema autônomo três de movimentação de threads do Freclien a bola por meio de chamadas para IBall::Move, o thread principal restante usa um timer de sistema para obter atualizações regulares da COBall posição, dimensionar e cor do objeto. Esse thread principal usa esses dados, obtidos chamando IBall::GetBall, para exibir imagens de instantâneo gráfica da bola em janela principal do cliente.
No exemplo Freserve, a COBall objeto internamente atualiza sua propriedade de cor para refletir o último thread que chamado de objeto Move método. O thread de exibição usa esses dados para cada imagem da bola exibe.sistema autônomo a bola se mova, ele muda de cor para refletir cada segmento que move a bola.sistema autônomo a bola se mova, também deixa uma trilha que fornece um histórico visual surpreendentes esses threads psistema autônomosing.Essa trilha demonstra que, com o modelo de segmentação disponível do COM, cada thread faz solicitações de interface para o mesmo objeto acessa o objeto no thread de chamada.Cada cor diferente do objeto único bola representa um segmento de chamada diferente.
Este exemplo usa o compilador nativo COM suporte.Ele oferece um exemplo de uma interface COM personalizado que empacota as estruturas RECT e ponto com o modelo de segmentação disponível.Ele demonstra o uso do Excluir atributo de do #import diretiva.