我有一个私人队列。我使用以下代码有效地返回队列中的消息数。
var queuePath = _queue.Path; //_queue is a System.Messaging.MessageQueue object
if (queuePath.StartsWith("."))
{
queuePath = System.Environment.GetEnvironmentVariable("COMPUTERNAME") + queuePath.Substring(1);
}
var queueCounter = new PerformanceCounter("MSMQ Queue","Messages in Queue",queuePath.ToLower(),true);
此代码通常有效但似乎有时是错误的(即该值滞后于实际长度)。如何强制 MSMQ队列计数器保持最新状态?
我的测试数据插入两项,然后检查长度。如果我单步执行它的值是正确的,但如果我全速运行,则计数返回为零 为此目的,是否有比绩效计数器更好的方法?