在异步编程模型中使用什么是好的命名准则?

时间:2009-06-23 20:03:44

标签: c# .net asynchronous naming begininvoke

我正在对一段代码进行一些重构,以将所有阻塞操作转换为异步对应操作。我的代码在C#中,正在执行UPnP查询,然后是HTTP查询。为此,我使用了UdpClient和WebClient的APM方法(BeginReceive等)。

我的单一方法现在是Call_1的继承 - > Callback_1 - > Call_2 - > Callback_2等等。

有人可以指出我应该在这种情况下给出方法的名称的一些指导,知道除了Call_1之外的所有东西都不是我的类接口的一部分。 Callback_1,Call_2等方法实际上只是使工作流失步的副作用。你会用什么命名法?

使用CCR,一切都会使用yield关键字保留在一个漂亮的方法中,但不幸的是,我现在不会使用CCR。

1 个答案:

答案 0 :(得分:0)

要向客户端代码表达代码的意图,我将为所有与run具有异步行为的方法添加前缀。例如:runSOQueryrunDiskCheck等。

也许是愚蠢但更清楚的客户端代码可能是fireAndForget,但不确定我是否正确理解了您的问题......

最好的方法是通过返回一个特殊的返回值来表达方法的异步语义,就像java.util.concurrent.Future一样,对于Java或者“自制”的东西,别处。 。