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