我有打电话的问题Close()
或Dispose()
上MessageQueue
。我有一个应该能够管理这些消息队列的应用程序。打开和关闭它们。
但是当我打电话时Close()
还是Dispose()
什么也没有发生。队列仍然存在于机器上。我使用该MessageQueue.GetPrivateQueuesByMachine()
方法获取MessageQueue
's的数组,并且在调用Close()
or后它仍然在那里Dispose()
。经过一番阅读后,似乎Dipose()
应该是我使用的那个,但仍然如此。
这是我用来尝试关闭队列的代码
public String CloseQueue(String path)
{
if (GetQueueArray().Length == 0)
{
return "The Queue Array is Empty!";
}
foreach (MessageQueue m in GetQueueArray())
{
if (m.Path.Equals(path))
{
try
{
path = m.QueueName;
m.Close();
break;
}
catch (Exception e)
{
return e.Message;
}
}
}
return "Successfully Closed Queue at path: " + path;
}
Run Code Online (Sandbox Code Playgroud)
该方法GetQueueArray()
定义为(在同一类中):
public MessageQueue[] GetQueueArray()
{
return MessageQueue.GetPrivateQueuesByMachine(machinename);
}
Run Code Online (Sandbox Code Playgroud)
我这样做只是为了方便我的 GUI 应用程序在需要时调用该方法。
我如何实际关闭或处理队列?