Actually my aim to enable a cancel button while this upload takes place.I tried raising an event which makes the cancel button enabled while the upload process is going on. But I am not able to click on the cancel button, i dont get the access to click it.Once the process is completed i am able to click the button to generate the event. Does any one know how this can be done in C#(Windows application) Sample code is : Code: while (bytesRead > 0) { if (iteration == 1) this._startTime = DateTime.Now; bytesWritten = this._workFlowProxy.UploadChunk(this._taskId, buffer, sentBytes, bytesRead); if (iteration == LoadManagerConstants.AverageSample + 1) //AverageSample = 5 { timeForInitialChunks = (long)DateTime.Now.Subtract(this._startTime).TotalMilliseconds; averageChunkTime = System.Math.Max (1, timeForInitialChunks / LoadManagerConstants.AverageSample); //Maximum size that can be uploaded at a time cannot be more than 4KB chunkSize = (int)System.Math.Min(LoadManagerConstants.MaxFileSize, chunkSize * preferredTransferDuration / averageChunkTime); buffer = new byte[chunkSize]; } sentBytes += bytesRead; percentageOfTotalSize = (int)(((decimal)sentBytes / (decimal)fileSize) * 100); this.SetProgressStatus(percentageOfTotalSize); bytesRead = fileToUpLoad.Read(buffer, LoadManagerConstants.Offset, chunkSize); iteration++; }