Skip to Main Content
Programming .NET Components, 2nd Edition
book

Programming .NET Components, 2nd Edition

by Juval Lowy
July 2005
Intermediate to advanced content levelIntermediate to advanced
644 pages
17h
English
O'Reilly Media, Inc.
Content preview from Programming .NET Components, 2nd Edition

Asynchronous Call Programming Models

To support asynchronous invocation, multiple threads are required. However, it would be a waste of system resources and a performance penalty if .NET spun off a new thread for every asynchronous method invocation. A better approach is to use a pool of already created worker threads. .NET has just such a pool, called the .NET thread pool . One of the nice things about the .NET way of supporting asynchronous calls is that it hides this interaction completely. As previously indicated, there are quite a few programming models available for dealing with asynchronous calls. This section examines the various options: blocking, waiting, polling, and completion callbacks. In general, BeginInvoke() initiates an asynchronous method invocation. The calling client is blocked for only the briefest moment—the time it takes to queue up a request for a thread from the thread pool to execute the method—and then control returns to the client. EndInvoke() manages method completion; specifically, retrieving output parameters and return values, and error handling.

Using BeginInvoke() and EndInvoke()

The compiler-generated BeginInvoke() and EndInvoke() methods take this form:

    public virtual IAsyncResult BeginInvoke(<input and input/output parameters>,
                                            AsyncCallback callback,
                                            object asyncState);
    public virtual <return value> EndInvoke(<output and input/output parameters>,
                                            IAsyncResult asyncResult);

BeginInvoke() accepts the input parameters of the original signature the ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Windows Forms Programming in C#

Windows Forms Programming in C#

Chris Sells
Metaprogramming in .NET

Metaprogramming in .NET

Jason Bock, Kevin Hazzard
.NET Windows Forms in a Nutshell

.NET Windows Forms in a Nutshell

Ian Griffiths, Matthew Adams

Publisher Resources

ISBN: 0596102070Supplemental ContentErrata Page