async void DhtEnginePeersFound(object o, PeersFoundEventArgs e) { await MainLoop; TorrentManager manager = allTorrents.FirstOrDefault(t => t.InfoHash == e.InfoHash); if (manager == null) { return; } if (manager.CanUseDht) { int successfullyAdded = await manager.AddPeersAsync(e.Peers); manager.RaisePeersFound(new DhtPeersAdded(manager, successfullyAdded, e.Peers.Count)); } else { // This is only used for unit testing to validate that even if the DHT engine // finds peers for a private torrent, we will not add them to the manager. manager.RaisePeersFound(new DhtPeersAdded(manager, 0, 0)); } }