private static void Shutdown()
{
var fastResume = new BEncodedDictionary();
foreach (var torrentManager in _torrents)
{
torrentManager.Stop();
while (torrentManager.State != TorrentState.Stopped)
{
Console.WriteLine("{0} is {1}", torrentManager.Torrent.Name, torrentManager.State);
Thread.Sleep(250);
}
fastResume.Add(torrentManager.Torrent.InfoHash.ToHex (), torrentManager.SaveFastResume().Encode());
}
#if !DISABLE_DHT
File.WriteAllBytes(_dhtNodeFile, _engine.DhtEngine.SaveNodes());
#endif
File.WriteAllBytes(_fastResumeFile, fastResume.Encode());
_engine.Dispose();
foreach (TraceListener lst in Debug.Listeners)
{
lst.Flush();
lst.Close();
}
Thread.Sleep(2000);
}