private void SendingProcessChangedThread(FileTransferProcessArgs arg) { if (InvokeRequired) { SendingProcessChangedThreadFeedBack d = new SendingProcessChangedThreadFeedBack(SendingProcessChangedThread); Invoke(d, new object[] { arg }); } else { var total = arg.PacketTrasfered + arg.PacketsLeft; progressBar1.Maximum = (int)total; if ((int)arg.PacketTrasfered > progressBar1.Maximum) { progressBar1.Maximum = (int)arg.PacketTrasfered; } progressBar1.Value = (int)arg.PacketTrasfered; label_percentage.Text = string.Format("Завершенно {0:0.##}% процесса", (double)arg.PacketTrasfered / total * 100); if (arg.TimeLeft > 60) { label_timeleft.Text = string.Format("Времени осталось: {0:0} сек. ({1:0.#} мин)", arg.TimeLeft, arg.TimeLeft / 60f); } else { label_timeleft.Text = string.Format("Времени осталось: {0:0} сек.", arg.TimeLeft); } label_speed.Text = string.Format("Скорость передачи: {0:0.##} КБайт", arg.Speed); } }
private void FileSender_ReceiverProcessChanged(FileTransferProcessArgs arg) { SendingProcessChangedThread(arg); }