COM+ Queued Components
has a built-in mechanism for invoking a
method call on an object: using a delegate asynchronously. The client
creates a delegate class that wraps the method it wants to invoke
synchronously, and the compiler provides definition and
implementation for a
method, which asynchronously calls the required method on the object.
The compiler also generates the
method to allow the client to poll for the method completion.
Additionally, .NET provides a helper class called
to manage asynchronous callbacks from the
object once the call is done.
Compared with COM+ queued components, the .NET approach leaves much to be desired. First, .NET does not support disconnected work. Both the client and the server have to be running at the same time, and their machines must be connected to each other on the network. Second, the client’s code in the asynchronous case is very different from the usual synchronous invocation of the same method on the object’s interface. Third, there is no built-in support for transactional forwarding of calls to the server, nor is there an auto-retry mechanism. In short, you should use COM+ queued components if you want to invoke asynchronous method calls in .NET.
assembly attribute is used to
configure queuing support for the hosting COM+ application. The
ApplicationQueuing attribute has two public
properties that you can set. The Boolean
property corresponds to the ...