2009-06-23 4 views
0

코드 조각에 대해 리팩토링을 수행하여 모든 차단 작업을 비동기 대상으로 변환하고 있습니다. 내 코드는 C#이고 UPnP 쿼리와 HTTP 쿼리가 있습니다. 이를 위해 UdpClient 및 WebClient (BeginReceive 등)의 APM 방법을 사용합니다.비동기 프로그래밍 모델에서 사용할 수있는 적절한 이름 지정 지침은 무엇입니까?

내 단일 메서드는 이제 Call_1 -> Callback_1 -> Call_2 -> Callback_2 등의 연속입니다.

다른 사람이 Call_1을 제외한 모든 것이 내 클래스 인터페이스의 일부가 아니라는 것을 알고 그 상황에서 메소드에 주어져야하는 이름에 대한 지침을 누군가 지적 해 줄 수 있습니까? 메서드 Callback_1, Call_2 등은 실제로 워크 플로를 동기화 해제하는 부작용입니다. 어떤 명명법을 사용합니까?

CCR을 사용하면 모든 것이 yield 키워드를 사용하여 하나의 예쁜 방법으로 유지되지만 불행히도 CCR을 사용하지 않을 것입니다.

답변

0

코드의 의도를 클라이언트 코드에 표현하려면 비동기 동작이있는 모든 메서드 앞에 run을 접두사로 붙입니다. 예 : runSOQuery, runDiskCheck 등. 어쩌면 바보하지만 fireAndForget이 될 수 클라이언트 코드도 명확하지만, 내가 제대로 질문을 이해하면하지 않도록

...

보다도 특별한 반환 값을 반환 하여 방법의 비동기 의미를 표현할 수, java.util.concurrent.Future, Java의 경우 또는 "home made"등이 있습니다. .