Что было бы хорошим руководством по именованию для использования в модели асинхронного программирования? - PullRequest
0 голосов
/ 24 июня 2009

Я делаю некоторый рефакторинг для фрагмента кода, чтобы преобразовать все операции блокировки в их асинхронные аналоги. Мой код на C # и выполняет запрос UPnP, за которым следует HTTP-запрос. Для этого я использую методы APM UdpClient и WebClient (BeginReceive и т. Д.).

Мой единственный метод теперь является последовательностью Call_1 -> Callback_1 -> Call_2 -> Callback_2 и т. Д.

Может кто-нибудь указать мне некоторые руководящие принципы относительно имен, которые должны быть даны методам в этой ситуации, зная, что все, кроме Call_1, не является частью моего интерфейса класса. Методы Callback_1, Call_2 и т. Д. Фактически являются побочным эффектом десинхронизации рабочего процесса. Какую номенклатуру вы бы использовали?

Используя CCR, все осталось бы в одном симпатичном методе с использованием ключевого слова yield, но, к сожалению, я пока не буду использовать CCR.

1 Ответ

0 голосов
/ 10 декабря 2009

Чтобы выразить клиентскому коду, каково намерение вашего кода, я бы поставил перед всеми методами, имеющими асинхронное поведение, run. Например: runSOQuery, runDiskCheck и так далее.

Возможно, глупо, но даже понятнее клиентскому коду может быть fireAndForget, но не уверен, правильно ли я понял ваш вопрос ...

Лучше всего было бы выразить асинхронную семантику метода путем возврата специального возвращаемого значения , например, java.util.concurrent.Future, в случае Java или чего-то «домашнего изготовления», в другом месте , ,

...