Changeset 2200


Ignore:
Timestamp:
6/19/2010 2:19:50 AM (5 years ago)
Author:
lowjoel
Message:

Allow the progress of tasks to be marked as indeterminate (notably for long tasks without known completion)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/eraser/Eraser.Util/ProgressManager.cs

    r2160 r2200  
    5858        /// Gets the percentage of the operation completed. 
    5959        /// </summary> 
     60        /// <remarks>If the <see cref="ProgressIndeterminate"/> property is true, this 
     61        /// property will return <see cref="System.Float.NaN"/>.</remarks> 
    6062        public abstract float Progress 
     63        { 
     64            get; 
     65        } 
     66 
     67        /// <summary> 
     68        /// Gets whether the current progress is undefined. 
     69        /// </summary> 
     70        public abstract bool ProgressIndeterminate 
    6171        { 
    6272            get; 
     
    137147    { 
    138148        /// <summary> 
     149        /// Marks this task's progress as indeterminate. 
     150        /// </summary> 
     151        public void MarkIndeterminate() 
     152        { 
     153            progressIndeterminate = true; 
     154        } 
     155 
     156        /// <summary> 
    139157        /// Marks this task as complete. 
    140158        /// </summary> 
     
    193211                if (Total == 0) 
    194212                    return 0.0f; 
     213                else if (ProgressIndeterminate) 
     214                    return float.NaN; 
    195215 
    196216                return (float)((double)Completed / Total); 
    197217            } 
    198218        } 
     219 
     220        public override bool ProgressIndeterminate 
     221        { 
     222            get 
     223            { 
     224                return progressIndeterminate; 
     225            } 
     226        } 
     227 
     228        /// <summary> 
     229        /// Stores whether the progress of the current task cannot be determined. 
     230        /// </summary> 
     231        /// <see cref="ProgressIndeterminate"/> 
     232        private bool progressIndeterminate; 
    199233 
    200234        public override float Speed 
     
    482516        } 
    483517 
     518        public override bool ProgressIndeterminate 
     519        { 
     520            get 
     521            { 
     522                lock (ListLock) 
     523                    return Steps.Any(x => x.Progress.ProgressIndeterminate); 
     524            } 
     525        } 
     526 
    484527        public override float Speed 
    485528        { 
     
    832875        } 
    833876 
     877        public override bool ProgressIndeterminate 
     878        { 
     879            get 
     880            { 
     881                lock (TaskLock) 
     882                    return Tasks.Any(x => x.ProgressIndeterminate); 
     883            } 
     884        } 
     885 
    834886        public override float Speed 
    835887        { 
Note: See TracChangeset for help on using the changeset viewer.