2009-06-23 21 views
0

我正在對一段代碼進行一些重構,以將所有阻塞操作轉換爲它們的異步對象。我的代碼是用C#編寫的,並且正在執行一個UPnP查詢,然後是一個HTTP查詢。爲此,我使用UdpClient和WebClient的APM方法(BeginReceive等)。什麼是在異步編程模型中使用的良好命名指南?

我的單一方法現在是一系列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或其他地方「自制」的情況下。 。

相關問題