Question: I am using the Web Client Class to download files from the internet (Flickr actually).
This works fine as long as I use : `WebClient().DownloadData(string)` , however this locks up the UI as it is Not asynchronous.

However when I try `WebClient().DownloadDatAsync(string)`, I get a compile error:
"Unable to convert System.String to System.Uri".

The string MediumUrl returns `"http://farm4.static.flickr.com/2232/2232/someimage.jpg"`

So the question is how do I convert the string `"http://farm4.static.flickr.com/2232/2232/someimage.jpg"` to a Uri.

Things I have tried-

1. I have tried to cast it to Uri but that does not work either.
2. I have tried `Uri myuri = new uri(string)` - errors out as above. 

```
foreach (Photo photo in allphotos)  
{  
    //Console.WriteLine(String.Format("photo title is :{0}", photo.Title));
    objimage = new MemoryStream(wc.DownloadData(photo.MediumUrl));
    images.Add(new Pictures(new Bitmap(objimage), photo.MediumUrl, photo.Title));  
}

```

Answer: 
```
objimage = new MemoryStream(wc.DownloadData(new Uri(photo.MediumUrl)));

```

> 
> b) I have tried Uri myuri = new uri(string) - errors out as above. 
> 
> 
> 

This is the usual way to create a Uri from a string... I don't see why it wouldn't work if the string is a valid URI
If I understand your code correctly, then

```
wc.DownloadDataAsync(new Uri(photo.MediumUrl));

```

should work.