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); }