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

问题描述 投票:0回答:1

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

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

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

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

c# .net asynchronous naming begininvoke
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.