문제

나는 모든 차단 작업을 비동기 상대로 변환하기 위해 코드에 대한 리팩토링을 수행하고 있습니다. 내 코드는 C#에 있으며 UPNP 쿼리와 HTTP 쿼리를 수행하고 있습니다. 이를 위해 udpclient 및 webclient의 APM 방법 (시작 정보 등)을 사용합니다.

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

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

CCR을 사용하면 모든 것이 수율 키워드를 사용하여 단일 예쁜 방법으로 유지되지만 불행히도 지금은 CCR을 사용하지 않을 것입니다.

도움이 되었습니까?

해결책

코드의 의도가 무엇인지 클라이언트 코드에 표현하려면 비동기 동작을 가진 모든 방법을 접두사로 말합니다. run. 예 : runSOQuery, runDiskCheck 등등.

어리석지 만 클라이언트 코드에 더 명확하게 fireAndForget, 그러나 내가 당신의 질문을 올바르게 이해했는지 확실하지 않습니다 ...

방법의 비동기 시맨틱을 특별 반품 값을 반환합니다, Java.util.concurrent.future, Java 또는 "Home Made"의 경우 다른 곳에서. .

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top