public void Start() { Log.WriteLine("starting client"); _isStopping = false; Torrent.ResetTrackersLastRequest(); EnablePeerConnections(); // tracker thread new Thread(() => { while (!_isStopping) { Torrent.UpdateTrackers(TrackerEvent.Started, Id, Port); Thread.Sleep(10000); } }).Start(); // peer thread new Thread(() => { while (!_isStopping) { ProcessPeers(); Thread.Sleep(1000); } }).Start(); // upload thread new Thread(() => { while (!_isStopping) { ProcessUploads(); Thread.Sleep(1000); } }).Start(); // download thread new Thread(() => { while (!_isStopping) { ProcessDownloads(); Thread.Sleep(1000); } }).Start(); }