パブリック MSMQ が空かどうかを確認する方法はありますか? プライベート MSMQ の場合は簡単です。
private bool IsQueueEmpty(string path)
{
bool isQueueEmpty = false;
var myQueue = new MessageQueue(path);
try
{
myQueue.Peek(new TimeSpan(0));
isQueueEmpty = false;
}
catch (MessageQueueException e)
{
if (e.MessageQueueErrorCode == MessageQueueErrorCode.IOTimeout)
{
isQueueEmpty = true;
}
}
return isQueueEmpty;
}
パブリック MSMQ に対して同じチェックを行うにはどうすればよいですか? 上記のコードでパブリック MSMQ をチェックしようとすると、Peak でエラーが発生します。
System.ArgumentOutOfRangeException: 長さを 0 未満にすることはできません。