Add a proxy object such that the SendMessage() call can be removed from the JavaHudCrossThreadCommunicationExample type, which no longer needs knowledge about the message queue. The proxy is responsible for dispatching the message to this type.