// All of these events originate on non-UI threads, so we have to Invoke them void library_ProgessEvent(object sender, ProgressEventArgs e) { this.BeginInvoke(new MethodInvoker(delegate() { if (e.Percentage == 0) { this.olvSongs.EmptyListMsg = "Initializing library..."; this.SetMetaDataListContents(); } else this.olvSongs.EmptyListMsg = String.Format("Loading: {0}%", e.Percentage); })); }
/// <summary> /// Our song loader is a little closer to finishing /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void loader_ProgessEvent(object sender, ProgressEventArgs e) { this.OnProgressEvent(e); }
void library_DoneEvent(object sender, ProgressEventArgs e) { this.BeginInvoke(new MethodInvoker(delegate() { if (e.IsCancelled) this.olvSongs.EmptyListMsg = "Loading was cancelled"; else this.olvSongs.EmptyListMsg = "This library is empty"; this.olvSongs.SetObjects(library.Songs); this.SetMetaDataListContents(); this.ConfigureAutoCompleteDetails(); this.EnableControls(); this.UpdateStatusText(); // Release the cache to save some resources this.library.Cache = null; GC.Collect(); })); }
/// <summary> /// Our song loader has finished. Remember the songs it found /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void loader_DoneEvent(object sender, ProgressEventArgs e) { // Stop listening for events before doing anything else this.loader.ProgessEvent -= new EventHandler<ProgressEventArgs>(loader_ProgessEvent); this.loader.DoneEvent -= new EventHandler<ProgressEventArgs>(loader_DoneEvent); this.songs = this.loader.Songs; this.OnDoneEvent(e); this.Cache.SaveLyricsCache(); this.loader = null; }
protected virtual void OnProgressEvent(ProgressEventArgs args) { if (this.ProgessEvent != null) this.ProgessEvent(this, args); }
void bgw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Error != null) { System.Diagnostics.Debug.WriteLine(e.Error.Message); throw e.Error; } if (!e.Cancelled) this.result = e.Result; ProgressEventArgs args = new ProgressEventArgs(); args.Percentage = 100; args.IsCancelled = e.Cancelled; this.OnDoneEvent(args); }
void bgw_ProgressChanged(object sender, ProgressChangedEventArgs e) { ProgressEventArgs args = new ProgressEventArgs(); args.Percentage = e.ProgressPercentage; args.Message = e.UserState as String; this.OnProgressEvent(args); // Did the event handler cancel the process? if (args.IsCancelled) this.isCancelled = true; if (this.isCancelled) this.bgw.CancelAsync(); }