com.sun.jna.platform.win32.COM.util

## Class ComThread

- java.lang.Object
- - com.sun.jna.platform.win32.COM.util.ComThread

-     public class ComThread
      extends java.lang.Object

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `(package private) java.util.concurrent.ExecutorService` | `executor`
    `(package private) java.lang.Runnable` | `firstTask`
    `(package private) boolean` | `requiresInitialisation`
    `(package private) long` | `timeoutMilliseconds`
    `(package private) java.lang.Thread.UncaughtExceptionHandler` | `uncaughtExceptionHandler`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ComThread(java.lang.String threadName, long timeoutMilliseconds, java.lang.Thread.UncaughtExceptionHandler uncaughtExceptionHandler)`
    `ComThread(java.lang.String threadName, long timeoutMilliseconds, java.lang.Thread.UncaughtExceptionHandler uncaughtExceptionHandler, int coinitialiseExFlag)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `<T> T` | `execute(java.util.concurrent.Callable<T> task)`
    `protected void` | `finalize()`
    `(package private) static void` | `setComThread(boolean value)`
    `void` | `terminate(long timeoutMilliseconds)` Stop the COM Thread.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### executor

          java.util.concurrent.ExecutorService executor

    - #### firstTask

          java.lang.Runnable firstTask

    - #### requiresInitialisation

          boolean requiresInitialisation

    - #### timeoutMilliseconds

          long timeoutMilliseconds

    - #### uncaughtExceptionHandler

          java.lang.Thread.UncaughtExceptionHandler uncaughtExceptionHandler

  - ### Constructor Detail

    - #### ComThread

          public ComThread(java.lang.String threadName,
                   long timeoutMilliseconds,
                   java.lang.Thread.UncaughtExceptionHandler uncaughtExceptionHandler)

    - #### ComThread

          public ComThread(java.lang.String threadName,
                   long timeoutMilliseconds,
                   java.lang.Thread.UncaughtExceptionHandler uncaughtExceptionHandler,
                   int coinitialiseExFlag)

  - ### Method Detail

    - #### terminate

          public void terminate(long timeoutMilliseconds)

      Stop the COM Thread.
      Parameters:
        `timeoutMilliseconds` - number of milliseconds to wait for a clean shutdown before a forced shutdown is attempted

    - #### finalize

          protected void finalize()
                           throws java.lang.Throwable

      Overrides:
        `finalize` in class `java.lang.Object`
      Throws:
        `java.lang.Throwable`

    - #### setComThread

          static void setComThread(boolean value)

    - #### execute

          public <T> T execute(java.util.concurrent.Callable<T> task)
                    throws java.util.concurrent.TimeoutException,
                           java.lang.InterruptedException,
                           java.util.concurrent.ExecutionException

      Throws:
        `java.util.concurrent.TimeoutException`
        `java.lang.InterruptedException`
        `java.util.concurrent.ExecutionException`

Copyright © 2007-2016 Timothy Wall. All Rights Reserved.