internal override void SendAsyncMethod (AsyncMethodData method) {
Hwnd hwnd;
XEvent xevent = new XEvent ();
hwnd = Hwnd.ObjectFromHandle(method.Handle);
xevent.type = XEventName.ClientMessage;
xevent.ClientMessageEvent.display = DisplayHandle;
xevent.ClientMessageEvent.window = method.Handle;
xevent.ClientMessageEvent.message_type = (IntPtr)AsyncAtom;
xevent.ClientMessageEvent.format = 32;
xevent.ClientMessageEvent.ptr1 = (IntPtr) GCHandle.Alloc (method);
hwnd.Queue.EnqueueLocked (xevent);
WakeupMain ();
}