private int StartLoading() { bStopTransfer = false; FM.bStopTransfer = false; LoadLabel.Visible = true; ProgressBar.Visible = true; LoadTimer.Enabled = true; bool bOk = false; Thread T = new Thread(delegate() { bOk = InfiniumFiles.UploadFile(FileNames, FolderID, ref CurrentUploadedFile); }); T.Start(); this.Activate(); Application.DoEvents(); while (T.IsAlive) { T.Join(50); Application.DoEvents(); if (CurrentUploadedFile != LastUploadedFile) { LoadLabel.Text = "Загрузка файлов (" + CurrentUploadedFile.ToString() + " из " + TotalFilesCount.ToString() + ")"; LastUploadedFile = CurrentUploadedFile; } if (bStopTransfer) { FM.bStopTransfer = true; bStopTransfer = false; LoadTimer.Enabled = false; ProgressBar.Visible = false; LoadLabel.Text = "Отмена загрузки файлов..."; DownloadLabel.Text = ""; SpeedLabel.Text = ""; PercentsLabel.Text = ""; CancelFilesButton.Visible = false; Application.DoEvents(); while (T.IsAlive) { Thread.Sleep(50); } FormEvent = eClose; AnimateTimer.Enabled = true; return(-1); } } LoadTimer.Enabled = false; FormEvent = eClose; AnimateTimer.Enabled = true; return(Convert.ToInt32(bOk)); }