Метод DownloadProgressChanged
вызывается в потоке, отличном от того, который начал загрузку. Внутри этого обратного вызова вы, кажется, манипулируете некоторым элементом графического интерфейса: ProgressBar1.Value
. Вы никогда не должны манипулировать элементами GUI в потоках, отличных от того, в котором они были созданы, иначе вы можете получить исключение. В зависимости от типа приложения, над которым вы работаете, существуют различные способы маршалинга вызовов в потоке графического интерфейса. Например, в WinForms вы должны использовать метод Control.BeginInvoke . В WPF и Silverlight эквивалентом является Dispatcher.BeginInvoke .