The central issue in this application design is the list of documents for download. Both the UI thread and the background downloading thread must access this list. You should protect access to this list by using SyncLock or lock blocks where appropriate to allow access to the list by only one thread at a time. A background thread should be used to download the documents. When download of a particular document is complete, the UI should be updated through the thread-safe Control.Invoke method.
Was this article helpful?