예제 #1
0
 // 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);
     }));
 }
예제 #2
0
 /// <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);
 }
예제 #3
0
        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();
            }));
        }
예제 #4
0
        /// <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;
        }
예제 #5
0
 protected virtual void OnProgressEvent(ProgressEventArgs args)
 {
     if (this.ProgessEvent != null)
         this.ProgessEvent(this, args);
 }
예제 #6
0
 /// <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 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();
        }