Multithreading Multi-Threaded Programming
Multithreading Multi-Threaded Programming
Multithreading Multi-Threaded Programming
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Using Three Synchronization Classes<br />
} As an example, take an application that maintains a linked list of<br />
accounts.<br />
} This application allows up to three accounts to be examined in separate<br />
windows,<br />
} but only one can be updated at any particular time. When an account is<br />
updated, the updated data is sent over the network to a data archive.<br />
} This example application uses all three types of synchronization<br />
classes.<br />
} Because it allows up to three accounts to be examined at one time, it<br />
uses CSemaphore to limit access to three view objects. When an<br />
attempt to view a fourth account occurs, the application either waits<br />
until one of the first three windows closes or it fails.<br />
} When an account is updated, the application uses CCriticalSection to<br />
ensure that only one account is updated at a time.<br />
} After the update succeeds, it signals CEvent, which releases a thread<br />
waiting for the event to be signaled. This thread sends the new data to<br />
the data archive.<br />
42<br />
Advanced Windows Network <strong>Programming</strong><br />
11/11/12