在天青服務總線的命名空間,有一個SubscriptionClient
型,具有一個方法來啓動一個MessageSession以這種方式: -天青服務總線 - SubscriptionClient.AcceptMessageSession()與SubscriptionClient.BeginAcceptMessageSession()
MessageSession session = subscriptionClient.AcceptMessageSession(...);
這是同步版本,它返回一個MessageSession。該庫還提供了一個異步版本BeginAcceptMessageSession()。這是一個讓我絆倒,因爲它調用一個回調,傳遞一個IAsyncResult和任何你想傳遞的狀態對象。在我的情況下,我傳遞了SubscriptionClient實例,以便我可以在SubscriptionClient上調用EndAcceptMessageSession()。 BeginAcceptMessageSession()具有返回類型void。
如何訪問通過BeginAcceptMessageSession()接受的MessageSession?我回到回調的結果參數中的是我的SubscriptionClient實例,我需要通過EndAcceptMessageSession()來終止BeginAcceptMessageSession()。
MessageSession引用無處可尋。文檔在這方面沒有幫助。在Google上搜索只會顯示3頁的搜索結果,其中大部分僅僅是MSDN對方法本身的在線描述。我查看了AsyncManager.Parameters,它也是空的。
有誰知道應該如何調用BeginAcceptMessageSession(),以便我可以獲得對由此創建的MessageSession的引用?
哇,謝謝。我沒有注意到EndAcceptMessageSession()!的返回類型。這些天你是我的英雄。服務總線非常棒,但社區需要的不僅僅是方法描述的轉儲文件! –
如果我想使用SubscriptionClient.BeginAcceptMessageSession(),然後使用MessageSession.BeginReceive(),可以從AcceptDone()中調用BeginReceive()嗎?在我看來,這是讓它們都異步運行但不能並行運行的唯一方法。 –