private void createTorrent() { creator = new TorrentCreator(); progressDialog = new CreateTorrentProgressDialog(); // TODO: Read the multi-tracker spec -- learn the proper way to add multiple trackers creator.Announces.Add(new RawTrackerTier()); foreach (string s in GetTrackers()) { creator.Announces[0].Add(s); } creator.Comment = Comment; creator.CreatedBy = Defines.ApplicationName; creator.Hashed += delegate(object o, TorrentCreatorEventArgs e) { GLib.Idle.Add(delegate { OnHashed(o, e); return(false); }); }; var result = creator.BeginCreate(new TorrentFileSource(SavePath), delegate(IAsyncResult r) { GLib.Idle.Add(delegate { BeginCreateCb(r); return(false); }); }, null); ResponseType cancelResult = (ResponseType)progressDialog.Run(); if (cancelResult == ResponseType.Cancel) { creator.AbortCreation(); try{ creator.EndCreate(result); progressDialog.Destroy(); } catch (Exception e) { logger.ErrorException("Unable to end creation" + e.Message, e); } } }
private void createTorrent() { creator = new TorrentCreator(); progressDialog = new CreateTorrentProgressDialog(); // TODO: Read the multi-tracker spec -- learn the proper way to add multiple trackers creator.Announces.Add(new RawTrackerTier ()); foreach(string s in GetTrackers()) creator.Announces[0].Add(s); creator.Comment = Comment; creator.CreatedBy = Defines.ApplicationName; creator.Hashed += delegate(object o, TorrentCreatorEventArgs e) { GLib.Idle.Add(delegate { OnHashed(o, e); return false; }); }; var result = creator.BeginCreate(new TorrentFileSource (SavePath), delegate (IAsyncResult r) { GLib.Idle.Add (delegate { BeginCreateCb (r); return false; }); }, null); ResponseType cancelResult = (ResponseType) progressDialog.Run(); if(cancelResult == ResponseType.Cancel){ creator.AbortCreation (); try{ creator.EndCreate(result); progressDialog.Destroy(); } catch (Exception e) { logger.ErrorException("Unable to end creation" + e.Message, e); } } }