Chapter 8. Asynchronous Functions and Active Objects
Although Symbian OS allows you to create pre-emptively scheduled threads via
RThread, as Chapter 9 will describe, you'll find that in most programs you write you rarely need to create threads yourself – even where you would normally do so in another operating system (e.g., Unix or Linux). Instead, the preferred option is to have your program run as a single, event-driven thread using asynchronous functions and active objects.
Most functions are considered synchronous in that they return only after they complete. Asynchronous functions, on the other hand, are functions that return immediately and execute in parallel with the calling program (they run in separate threads in the background), sending an event to your calling program when execution is complete. Many of the Symbian OS API functions are asynchronous functions, and using them provides you with parallel operation in your program, since you can have multiple asynchronous functions executing at the same time. Active objects are classes used to invoke an asynchronous function, and to handle the completion of the asynchronous function via a callback.
Asynchronous functions and active objects are the foundation of the event-driven operation of Symbian OS, and mastering their use is essential to becoming a good programmer on this platform. This chapter looks at asynchronous programming on Symbian OS and describes how to use and implement asynchronous functions and active objects. ...