Pergunta

Estou fazendo algumas refatoração em um pedaço de código para transformar todas as operações de bloqueio com os seus homólogos assíncronos. Meu código é em C # e está fazendo uma consulta UPnP seguido por um HTTP consulta. Para isso, use os métodos de APM de UdpClient e WebClient (BeginReceive, e assim por diante).

O meu único método agora é uma sucessão de Call_1 -> Callback_1 -> Call_2 -.> Callback_2 e assim por diante

pode apontar alguém me a algumas orientações sobre os nomes que devem ser dadas aos métodos nessa situação, sabendo que tudo, exceto Call_1 não faz parte da minha interface de classe. Os métodos Callback_1, Call_2, etc, são, de facto, apenas um efeito colateral de desynchronizing o fluxo de trabalho. O nomenclatura você usaria?

Usando CCR, tudo ficaria em um único método bonita usando a palavra-chave de rendimento, mas, infelizmente, eu não vou usar CCR para agora.

Foi útil?

Solução

Para expressar a código de cliente que a intenção de seu código é, gostaria de prefixar todos os métodos que têm comportamento assíncrono com run. Por exemplo: runSOQuery, runDiskCheck e assim por diante.

Talvez estúpido, mas ainda mais claro para o código do cliente poderia ser fireAndForget, mas não tenho certeza se eu entendi sua pergunta corretamente ...

Melhor poderia ser para expressar a semântica assíncronas do método pelo retornar um valor de retorno especial , como um java.util.concurrent.Future, no caso de Java ou algo assim "casa", em outro lugar. .

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