2009-06-23 8 views
0

私は、すべてのブロッキング操作を非同期の相手に変換するコードをいくつかリファクタリングしています。私のコードはC#であり、UPnPクエリの後にHTTPクエリを実行しています。このために、私はUdpClientとWebClient(BeginReceiveなど)のAPMメソッドを使用します。非同期プログラミングモデルで使用するための適切な命名ガイドラインは何でしょうか?

私の1つのメソッドは、Call_1 - > Callback_1 - > Call_2 - > Callback_2などの継承になりました。

Call_1以外のすべてが自分のクラスインターフェイスに含まれていないことを知って、その状況のメソッドに与えられるべき名前に関するいくつかのガイドラインを教えてもらえますか。 メソッドCallback_1、Call_2などは、実際にはワークフローを非同期化することの単なる副作用です。どのような命名法を使用しますか?

CCRを使用すると、すべてがyieldキーワードを使用して1つのきれいな方法にとどまりますが、残念ながら今はCCRを使用しません。

答えて

0

クライアントコードにコードの意図を表すには、非同期動作を持つすべてのメソッドに接頭辞としてrunを付けます。例:runSOQueryrunDiskCheckなど。多分愚かしかしfireAndForgetをすることができ、クライアントコードにさえ明確、私が正しくあなたの質問を理解している場合ではないことを確認

...

ベストは、特別な戻り値を返すによってメソッドの非同期意味を表現することができ、Javaの場合はjava.util.concurrent.Future、他の場合は「自家製」などがあります。 。

関連する問題