private void StartDownloadMulti() { bStopTransfer = false; FM.bStopTransfer = false; LoadLabel.Visible = true; ProgressBar.Visible = true; LoadTimer.Enabled = true; Thread T; T = new Thread(delegate() { InfiniumFiles.SaveFiles(ItemsDataTable, SaveToPath, 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; } } LoadTimer.Enabled = false; FormEvent = eClose; AnimateTimer.Enabled = true; }