private void Upload(System.ComponentModel.DoWorkEventArgs e) { // Initializing service proxy var cloudProxy = new CloudServiceClient(); try { // Creating fileInfo and fileName var fileInfo = new FileInfo(_localFilePath); var fileName = fileInfo.Name; // Uploading file using (var stream = new FileStream(_localFilePath, FileMode.Open, FileAccess.Read)) { using (var uploadStream = new ProgressStream(stream)) { // Adding event handler to uploadStream uploadStream.ProgressChanged += uploadStream_ProgressChanged; // Invoking service method cloudProxy.UploadFile(ref fileName, fileInfo.Length, uploadStream); // Check for cancellation if (backgroundWorker.CancellationPending) { e.Cancel = true; _cloudFileName = fileName; return; } // Adding file name to list instead of invoking GetFileList _fileList.Add(fileName); _bindingSource.ResetBindings(false); } } } catch (Exception exception) { throw new ArgumentException(exception.Message); } finally { // Closing service proxy cloudProxy.Close(); } }