2009-06-23 8 views
0

Je fais un refactoring sur un morceau de code pour transformer toutes les opérations de blocage en leurs équivalents asynchrones. Mon code est en C# et fait une requête UPnP suivie d'une requête HTTP. Pour cela, j'utilise les méthodes APM de UdpClient et WebClient (BeginReceive, et ainsi de suite).Quelle serait une bonne directive de dénomination à utiliser dans le modèle de programmation asynchrone?

Ma méthode unique est maintenant une succession de Call_1 -> Callback_1 -> Call_2 -> Callback_2 et ainsi de suite. Quelqu'un peut-il me diriger vers quelques lignes directrices sur les noms qui devraient être donnés aux méthodes dans cette situation, sachant que tout sauf Call_1 ne fait pas partie de mon interface de classe. Les méthodes Callback_1, Call_2, etc. ne sont en fait qu'un effet secondaire de la désynchronisation du workflow. Quelle nomenclature utiliseriez-vous? En utilisant CCR, tout resterait dans une seule jolie méthode en utilisant le mot-clé yield, mais malheureusement, je n'utiliserai pas CCR pour l'instant.

Répondre

0

Pour exprimer au code client l'intention de votre code, je préfèrerais toutes les méthodes qui ont un comportement asynchrone avec run. Par exemple: runSOQuery, runDiskCheck et ainsi de suite.

Peut-être stupide, mais encore plus clair au code client pourrait être fireAndForget, mais pas sûr si je comprends bien votre question ...

Meilleur pourrait être d'exprimer la sémantique async de la méthode par retour d'une valeur spéciale de retour, comme un java.util.concurrent.Future, dans le cas de Java ou quelque chose de "fait maison", ailleurs. .

Questions connexes