The error you are seeing sounds more like an attempt at cross-thread usage of the WebClient which is NOT allowed.  In other words, the WebClient must be created on the same thread which will eventually call DownloadStringAsync.  Make sense?
You'll need to rethink your design a little.  You might consider using the ThreadLocalAttribute if you really want to keep instances of WebClient globally accessible.