com.esri.arcgis.framework
Class IMultiThreadedApplicationProxy

java.lang.Object
  extended by com.esri.arcgis.interop.Dispatch
      extended by com.esri.arcgis.framework.IMultiThreadedApplicationProxy
All Implemented Interfaces:
IMultiThreadedApplication, Externalizable, Serializable

public class IMultiThreadedApplicationProxy
extends com.esri.arcgis.interop.Dispatch
implements IMultiThreadedApplication, Serializable

Provides access to members that control DLL thread managers.

Remarks

Multithreading refers to a software configuration where independent paths of execution are in use simultaneously in an application. Each thread has its own stack and its own CPU state. The Application object implements the IMultiThreadedApplication interface that provides a simple callback mechanism for registering user created thread manager objects.

A thread manager object is any object that implements the IDllThreadManager interface. The thread manager object will be notified prior to application shutdown so that all currently running threads can be exited cleanly before the Application process actually shuts down. If you are developing components that will create threads and will be used in any of the ArcGIS application processes, the dll that contains these components must also contain an object that implements IDllThreadManager. Also, you must use the IMultiThreadedApplication interface to register this thread manager object with that application.

The IMultiThreadedApplication interface has methods for registering and unregistering thread managers with the application and returning the process ID of the application.

Product Availability

Available with ArcGIS Desktop.

See Also:
IDllThreadManager, Serialized Form

Field Summary
 boolean noncastable
           
 
Fields inherited from class com.esri.arcgis.interop.Dispatch
DISPATCH_METHOD, DISPATCH_PROPERTYGET, DISPATCH_PROPERTYPUT, DISPATCH_PROPERTYPUTREF, objRef
 
Constructor Summary
  IMultiThreadedApplicationProxy()
           
  IMultiThreadedApplicationProxy(Object obj)
           
protected IMultiThreadedApplicationProxy(Object obj, String iid)
           
 
Method Summary
 void addListener(String iidStr, Object theListener, Object theSource)
           
 int getProcessID()
          The process ID for the application.
 int registerThreadManager(IDllThreadManager pThreadMgr)
          Registers a DLL thread manager with the application.
 void removeListener(String iidStr, Object theListener)
           
 void unregisterThreadManager(int mgrCookie)
          Unregisters a DLL thread manager with the application.
 
Methods inherited from class com.esri.arcgis.interop.Dispatch
bindUsingMoniker, constructVtblPosTable, convertToNative, cookieForListener, createDispatch, createObjrefMonikerDisplayName, equals, getActiveObject, getActiveObject, getDefaultProperty, getDispatchIdOfName, getLastErrorCode, getMtsObjectContext, getObjRef, getPropertyByName, getPropertyByName, getVtblPos, hashCode, initDispatch, invoke, invokeMethodByName, invokeMethodByName, invokeMethodByName, invokePropertyGetByName, invokePropertyPutByName, invokePropertyPutByRefByName, isNativeMode, isObjRef, optimizedVtblInvoke, queryInterface, readExternal, release, setNativeMode, setPropertyByName, toString, vtblInvoke, writeExternal
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

noncastable

public boolean noncastable
Constructor Detail

IMultiThreadedApplicationProxy

public IMultiThreadedApplicationProxy()

IMultiThreadedApplicationProxy

public IMultiThreadedApplicationProxy(Object obj)
                               throws IOException
Throws:
IOException

IMultiThreadedApplicationProxy

protected IMultiThreadedApplicationProxy(Object obj,
                                         String iid)
                                  throws IOException
Throws:
IOException
Method Detail

addListener

public void addListener(String iidStr,
                        Object theListener,
                        Object theSource)
                 throws IOException
Overrides:
addListener in class com.esri.arcgis.interop.Dispatch
Throws:
IOException

removeListener

public void removeListener(String iidStr,
                           Object theListener)
                    throws IOException
Overrides:
removeListener in class com.esri.arcgis.interop.Dispatch
Throws:
IOException

getProcessID

public int getProcessID()
                 throws IOException,
                        AutomationException
The process ID for the application.

Product Availability

Available with ArcGIS Desktop.

Supported Platforms

Windows

Specified by:
getProcessID in interface IMultiThreadedApplication
Returns:
The pid
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

registerThreadManager

public int registerThreadManager(IDllThreadManager pThreadMgr)
                          throws IOException,
                                 AutomationException
Registers a DLL thread manager with the application.

Product Availability

Available with ArcGIS Desktop.

Supported Platforms

Windows

Specified by:
registerThreadManager in interface IMultiThreadedApplication
Parameters:
pThreadMgr - A reference to a com.esri.arcgis.framework.IDllThreadManager (in)
Returns:
The mgrCookie
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

unregisterThreadManager

public void unregisterThreadManager(int mgrCookie)
                             throws IOException,
                                    AutomationException
Unregisters a DLL thread manager with the application.

Product Availability

Available with ArcGIS Desktop.

Supported Platforms

Windows

Specified by:
unregisterThreadManager in interface IMultiThreadedApplication
Parameters:
mgrCookie - The mgrCookie (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.