Package com.sun.jna.platform.win32
Class User32Util.MessageLoopThread
java.lang.Object
java.lang.Thread
com.sun.jna.platform.win32.User32Util.MessageLoopThread
- All Implemented Interfaces:
Runnable
- Enclosing class:
- User32Util
Helper class, that runs a windows message loop as a seperate thread.
This is intended to be used in conjunction with APIs, that need a
spinning message loop. One example for this are the DDE functions, that
can only be used if a message loop is present.
To enable interaction with the mainloop the MessageLoopThread allows to
dispatch callables into the mainloop and let these Callables be invoked
on the message thread.
This implies, that the Callables should block the loop as short as possible.
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
-
Field Summary
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
exit()
protected boolean
The method is called from the thread, that run the message dispatcher, when the call toUser32.GetMessage(com.sun.jna.platform.win32.WinUser.MSG, com.sun.jna.platform.win32.WinDef.HWND, int, int)
fails (returns-1
).void
run()
<V> Future<V>
<V> V
runOnThread
(Callable<V> callable) Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
-
Constructor Details
-
MessageLoopThread
public MessageLoopThread()
-
-
Method Details
-
run
public void run() -
runAsync
-
runOnThread
- Throws:
Exception
-
exit
public void exit() -
getMessageFailed
protected boolean getMessageFailed()The method is called from the thread, that run the message dispatcher, when the call toUser32.GetMessage(com.sun.jna.platform.win32.WinUser.MSG, com.sun.jna.platform.win32.WinDef.HWND, int, int)
fails (returns-1
).If the method returns
true
, the MainLoop is exitted, if it returnsfalse
the mainloop is resumed.Default behavior: The error code is logged to the com.sun.jna.platform.win32.User32Util.MessageLoopThread logger and the main loop exists.
- Returns:
- true if MainLoop should exit, false it it should resume
-