Hy,Windows Service Bus接收函數64位int
我想在C#中使用ReceiveBatch-Methode(IEnumerable(Int64))。它需要一個IEnumerable(Int64 - > long)。我需要這個函數,因爲在GetMessageNumber(topicName,subscriptionName)函數中,我使用來自服務總線的內部計數器,並返回一個長整型值。另一個接收函數只提供一個int。我試過這個函數,但我總是得到一個MessageNotFoundException被用戶代碼取消。
無法鎖定至少一條指定的消息。該消息是不是 vorhanden..TrackingId:a2e6b0f0-fd3d-4594-935d-936ff7b3210c_GLBHPC0474_BLBHPC0474,時間戳:2014年3月28日13時41分57秒
http://msdn.microsoft.com/de-de/library/jj657801.aspx
IEnumerable<long> messageNumber = new long[]
{
GetMessageNumber(topicName, subscriptionName)
};
IEnumerable<BrokeredMessage> messages = null;
try
{
//Receives a message using the InternalReceiver.
messages = subscriptionClient.ReceiveBatch(messageNumber);
但是我試了一下與int函數ReceiveBatch-Methode(Int32),它的工作。問題是我需要具有較長值的函數,以及爲什麼他們使用IEnumerable來使用具有64位值的接收函數?我如何完成使用64位值的函數是正確的?
IEnumerable<BrokeredMessage> messages = null;
long messageNumber = GetMessageNumber(topicName, subscriptionName);
try
{
//Receives a message using the InternalReceiver.
messages = subscriptionClient.ReceiveBatch(messageNumber);
此致
Hy, 謝謝你的回答。 Messagenumber僅獲取消息的總數,因此GetMessageNumber(topicName,subscriptionName)函數使用以下代碼:QueueDescription queue = GetQueue(queueName); long messageCount = queue.MessageCount;' – user2644964
我想完成的是,我可以在讀取模式下從隊列中獲取所有消息,因此消息應該保留在隊列中,我不想刪除它們。接收所有使用ReceiveBatch函數的消息。要知道我使用上述函數的消息數量,但MessageCount返回一個long值,對於ReceiveBatch,我只能使用int。 – user2644964