Training
Learning path
Build distributed apps with .NET Aspire - Training
Learn how to build observable, production ready, distributed applications with .NET Aspire.
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Asynchronous Remote Procedure Call (RPC) is a Microsoft extension that addresses several limitations of the traditional RPC model as defined by the Open Software Foundation–Distributed Computing Environment (OSF-DCE). Asynchronous RPC separates a remote procedure call from its return value, which resolves the following limitations of traditional, synchronous RPC:
You take advantage of asynchronous RPC mechanisms by declaring functions with the [async] attribute. Because you make this declaration in an attribute configuration file (ACF), you do not have to make any changes to the Interface Definition Language (IDL) file; asynchronous RPC has no effect on the wire protocol (how the data is transmitted between client and server). This means that both synchronous and asynchronous clients can communicate with an asynchronous server application.
This section presents an overview of how to develop distributed applications using asynchronous RPC. The overview is presented in the following sections:
Training
Learning path
Build distributed apps with .NET Aspire - Training
Learn how to build observable, production ready, distributed applications with .NET Aspire.
Documentation
The pipe type constructor is a highly efficient mechanism for passing large amounts of data, or any quantity of data that is not all available in memory at one time.
Defining Pipes in IDL Files - Win32 apps
When a pipe is defined in an IDL file, the MIDL compiler generates a pipe control structure whose members are pointers to push, pull, and alloc procedures as well as a state variable that coordinates these procedures.
Declaring Asynchronous Functions - Win32 apps
To declare an RPC function as asynchronous, first declare the function as part of an interface definition in an Interface Definition Language (IDL) file.