Example01 Listing 13-1. A Simple BackgroundWorker, pp. 357 Example02 Listing 13-2. A Variation on the BackgroundWorker Design Pattern for Iterative Computations, pp. 359 Example03 Listing 13-3. Code to Raise GUI-Thread Events from an IterativeBackgroundWorker Object, pp. 362 Example04 Listing 13-4. Connecting an IterativeBackgroundWorker to a GUI, pp. 363 Example05 Listing 13-5. Fetching Three Web Pages Simultaneously, pp. 366 Example06 Understanding Thread Hopping, pp. 367 Example07 Listing 13-6. A Synchronous Image Processor, pp. 371 Example08 Listing 13-7. The Asynchronous Image Processor, pp. 372 Example09 Listing 13-8. An Implementation of an Async.Primitive, pp. 376 Example10 Listing 13-9. A Basic Implementation of Async.Parallel, pp. 377 Example11 Understanding Exceptions and Cancellation, pp. 378 Example12 Listing 13-10. Implementing a Counter Using a MailboxProcessor, pp. 380 Example13 Listing 13-11. Hiding a Mailbox and Supporting a Fetch Method, pp. 381 Example14 Listing 13-12. Scanning a Mailbox for Relevant Messages, pp. 384 Example15 Listing 13-13. A Scalable, Controlled Asynchronous Web Crawler, pp. 385 Example16 Creating Threads Explicitly, pp. 389 Example17 Listing 13-14. Shared-Memory Code with a Race Condition, pp. 390 Example18 Using ReaderWriterLock, pp. 391 Listing 13-15. Shared-Memory Code with a Race Condition, pp. 391