Requirements for an Asynchronous Mechanism

To make the most of the various options available with .NET asynchronous calls, you first need to understand the generic requirements set for any modern component-oriented asynchronous calls support. These include the following:

  • The same component code should be used for both synchronous and asynchronous invocations. This allows component developers to focus on the business logic and facilitates using a standard mechanism.

  • A corollary of the first requirement is that the client should be the one to decide whether to call a component synchronously or asynchronously. This, in turn, implies that the client will have different code for invoking the call synchronously and asynchronously.

  • The client should be able to issue multiple asynchronous calls and have multiple asynchronous calls in progress. It should be able to distinguish between multiple method completions.

  • By the same token, the component should be able to serve multiple concurrent calls.

  • If component methods have output parameters or return values, these parameters or results aren’t available when control returns to the client. The client should have a way to access them when the method completes.

  • Similarly, errors on the component’s side should be propagated to the client side. Any exceptions thrown during the method execution should later be played back to the client.

  • The asynchronous-calls mechanism should be straightforward and simple to use (this is more a design guideline than a requirement). ...

Get Programming .NET Components, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.