public void Run()
{
try
{
while (_running)
{
if (_inactives.Count == 0)
{
DiscoverPeers();
}
else
{
TryNextPeer();
}
// We started a new peer connection, delay before trying another one
Thread.Sleep(_connectionDelayMillis);
}
}
catch (ThreadInterruptedException)
{
lock (this)
{
_running = false;
}
}
_peerPool.ShutdownNow();
lock (_peers)
{
foreach (var peer in _peers)
{
peer.Disconnect();
}
}
}