Pipes assíncronos
O uso de parâmetros de pipe com RPC assíncrono permite transmitir dados incrementalmente, pois eles ficam disponíveis, sem associar o cliente e o servidor. Isso é particularmente útil quando você tem uma grande quantidade de dados a serem transferidos, combinados com um cliente lento, um servidor lento ou uma rede lenta. Se você usar um pipe em uma chamada de função assíncrona, ele será, por definição, um pipe assíncrono. Não há suporte para pipes síncronos em conjunto com funções assíncronas.
Ao contrário dos pipes convencionais (síncronos) em que o servidor lida com todos os detalhes do envio e recebimento de dados de pipe, os pipes assíncronos são simétricos. Ou seja, o cliente e o servidor podem efetuar push e efetuar pull de dados pelo pipe.
Observação
Os parâmetros de pipe só podem ser passados por referência. Mesmo que o arquivo IDL mostre parâmetros de pipe sendo passados por valor, os stubs gerados aceitarão parâmetros de pipe apenas por referência.
Na discussão a seguir sobre pipes assíncronos, a familiaridade com o construtor de tipo de pipe é assumida. Para obter mais informações sobre os procedimentos de pipe descritos nestes tópicos, consulte Pipes.