private void HandlePeerDisconnected(object sender, EventArgs args) { if (sender is Peer peer) { peer.BlockRequested -= HandleBlockRequested; peer.BlockCancelled -= HandleBlockCancelled; peer.BlockReceived -= HandleBlockReceived; peer.Disconnected -= HandlePeerDisconnected; peer.StateChanged -= HandlePeerStateChanged; Peers.TryRemove(peer.Key, out _); Seeders.TryRemove(peer.Key, out _); Leechers.TryRemove(peer.Key, out _); } }
private void HandlePeerDisconnected(object sender, EventArgs args) { var peer = sender as Peer; peer.BlockRequested -= HandleBlockRequested; peer.BlockCancelled -= HandleBlockCancelled; peer.BlockReceived -= HandleBlockReceived; peer.Disconnected -= HandlePeerDisconnected; peer.StateChanged -= HandlePeerStateChanged; Peer tmp; Peers.TryRemove(peer.Key, out tmp); Seeders.TryRemove(peer.Key, out tmp); Leechers.TryRemove(peer.Key, out tmp); }
public void UpdateUi(bool first) { MainWindow form = Program.Form; if (form.InvokeRequired) { form.Invoke(new UpdateUIDelegate(UpdateUi), new object[] { first }); return; } SetText(1, Id.ToString()); SubItems[1].Tag = Id; SetText(2, Toolbox.GetFileSize(SizeWhenDone)); SubItems[2].Tag = SizeWhenDone; SetText(3, Percentage + "%"); SubItems[3].Tag = Percentage; SetText(4, Status); SetText(5, string.Format(_seedersColumnFormat, Seeders < 0 ? "?" : Seeders.ToString(), PeersSendingToUs)); SubItems[5].Tag = Seeders; SetText(6, string.Format(_seedersColumnFormat, Leechers < 0 ? "?" : Leechers.ToString(), PeersGettingFromUs)); SubItems[6].Tag = Leechers; SetText(7, DownloadRate > 0 ? Toolbox.GetSpeed(DownloadRate) : ""); SubItems[7].Tag = DownloadRate; SetText(8, UploadRate > 0 ? Toolbox.GetSpeed(UploadRate) : ""); SubItems[8].Tag = UploadRate; SetText(9, Eta > 0 ? TimeSpan.FromSeconds(Eta).ToString() : ""); SubItems[9].Tag = Eta; SetText(10, Toolbox.GetFileSize(Uploaded)); SubItems[10].Tag = Uploaded; SetText(11, LocalRatio < 0 ? "∞" : LocalRatio.ToString()); SubItems[11].Tag = LocalRatio; SubItems[11].ForeColor = GetRatioColor(); SetText(12, Added.ToString()); SubItems[12].Tag = Added; if (DoneDate != null) { SubItems[13].Tag = DoneDate; SetText(13, DoneDate.ToString()); } SetText(14, FirstTrackerTrimmed); if (first) { lock (form.stateListBox) { if (FirstTrackerTrimmed.Length > 0 && form.stateListBox.FindItem(FirstTrackerTrimmed) == null) { form.stateListBox.Items.Add(new GListBoxItem(FirstTrackerTrimmed, 9)); } } if (Program.Settings.MinToTray && Program.Settings.StartedBalloon && _updateSerial > 2) { form.ShowTrayTip(LocalSettingsSingleton.BALLOON_TIMEOUT, TorrentName, String.Format(OtherStrings.NewTorrentIs, Status.ToLower()), ToolTipIcon.Info); } LogError(); } else if (Program.Settings.MinToTray && CompletionPopupPending) { CompletionPopupPending = false; form.ShowTrayTip(LocalSettingsSingleton.BALLOON_TIMEOUT, TorrentName, OtherStrings.TorrentFinished, ToolTipIcon.Info); } ForeColor = HasError ? Color.Red : SystemColors.WindowText; UpdateIcon(); }