Compartilhar via


O modelo Cascaded RealTimeStylus

O modelo RealTimeStylus em cascata permite que você use dois objetos RealTimeStylus , cada um em execução em um thread diferente. Com esse modelo, você anexa um objeto RealTimeStylus secundário a um objeto RealTimeStylus primário. O objeto RealTimeStylus secundário é anexado como o único plug-in assíncrono na coleção de plug-ins assíncrona do objeto RealTimeStylus primário.

O modelo RealTimeStylus em cascata pode ser útil nos cenários a seguir.

  • Você pode adicionar determinadas tarefas que podem ser computacionalmente exigentes, mas ainda exigem acesso em tempo real ao fluxo de dados da caneta tablet, como o reconhecimento de gestos multissessão, à coleção de plug-ins síncrona do objeto RealTimeStylus secundário.
  • Você pode espalhar a carga computacional de seus plug-ins síncronos em dois threads, reduzindo os atrasos na coleta de tinta em alguns computadores Tablet.

O diagrama a seguir ilustra o fluxo de dados de caneta tablet por meio de dois objetos RealTimeStylus em cascata e suas coleções de plug-in.

ilustração mostrando o fluxo de dados realtimestylus em cascata

Neste diagrama, o círculo com letras "A" representa dados de caneta tablet que já foram processados pelos objetos RealTimeStylus primários e secundários e foram colocados na fila de saída do objeto RealTimeStylus secundário. O círculo com letras "B" representa dados de caneta tablet que já foram processados pelo objeto RealTimeStylus primário e adicionados à fila de saída do objeto RealTimeStylus primário e ainda não foram enviados para o objeto RealTimeStylus secundário. O círculo com letras "C" representa os dados da caneta tablet que o objeto RealTimeStylus primário está processando no momento. Ele é enviado para a coleção de plug-in síncrono e colocado na fila de saída. O círculo vazio representa a posição na fila de saída em que os dados futuros da caneta tablet são adicionados.

Restrições

Se você usar o construtor RealTimeStylus padrão, criará um objeto RealTimeStylus que só pode aceitar a entrada de outro objeto RealTimeStylus .

A lista a seguir descreve as restrições associadas ao uso do modelo RealTimeStylus em cascata.

  • Somente dois objetos RealTimeStylus podem ser usados , um objeto RealTimeStylus primário e um objeto RealTimeStylus secundário.
  • O objeto RealTimeStylus primário deve ser criado com um construtor que usa o parâmetro attachedControl ou handle . O objeto RealTimeStylus secundário deve ser criado com o construtor sem argumento.
  • O objeto RealTimeStylus secundário deve ser o único plug-in assíncrono na coleção de plug-ins assíncrona do objeto RealTimeStylus primário.
  • Um objeto RealTimeStylus secundário só pode ser anexado a um objeto RealTimeStylus primário por vez. Se ele for adicionado a um segundo objeto RealTimeStylus primário, o método Add lançará uma exceção e o objeto RealTimeStylus secundário não será anexado ao segundo objeto RealTimeStylus primário.
  • O comportamento de alguns dos membros secundários do objeto RealTimeStylus é modificado. A tabela a seguir descreve o comportamento modificado desses membros.
Membro Comportamento
GetDesiredPacketDescription Esse método retorna as informações do objeto RealTimeStylus primário.
Se o RealTimeStylus secundário não estiver anexado a um objeto RealTimeStylus primário, esse método retornará o valor padrão.
SetDesiredPacketDescription Esse método gera uma exceção InvalidOperationException .
GetStyluses Esse método retorna as informações do objeto RealTimeStylus primário.
Se o RealTimeStylus secundário não estiver anexado a um objeto RealTimeStylus primário, esse método retornará uma matriz vazia.
Enabled Obter essa propriedade retorna as informações do objeto RealTimeStylus primário.
Se o RealTimeStylus secundário não estiver anexado a um objeto RealTimeStylus primário, obter essa propriedade retornará o valor padrão.
Nota: Definir essa propriedade gera uma exceção InvalidOperationException .
WindowInputRectangle Obter essa propriedade retorna as informações do objeto RealTimeStylus primário.
Se o RealTimeStylus secundário não estiver anexado a um objeto RealTimeStylus primário, obter essa propriedade retornará o valor padrão.
Nota: Definir essa propriedade gera uma exceção InvalidOperationException .
  • Espera-se que o objeto RealTimeStylus pai pare de funcionar quando o RealTimeStylus filho for Descartado.