Call Dispose(Boolean) when you are finished using the MessageQueue. The Dispose(Boolean) method leaves the MessageQueue in an unusable state. After calling Dispose(Boolean), you must release all references to the MessageQueue so the memory it was occupying can be reclaimed by garbage collection.
You should call Dispose(Boolean) before you release your last reference to the MessageQueue. Otherwise, the resources the MessageQueue is using will not be freed until garbage collection calls the MessageQueue object's destructor.