예제 #1
0
파일: ConsoleEx.cs 프로젝트: Enerdy/Jist
        public static void WriteBar(PercentChangedEventArgs args)
        {
            StringBuilder output = new StringBuilder();
            int fillLen = 0;
            char filler = '#', spacer = ' ';

            output.Append(" ");
            for (int i = 0; i < 10; i++) {
                char c = i < args.Label.Length ? args.Label[i] : ' ';
                output.Append(c);
            }

            output.Append(" [");

            fillLen = Convert.ToInt32(((decimal)args.Percent / 100) * 60);

            for (int i = 0; i < 60; i++) {
                output.Append(i <= fillLen ? filler : spacer);
            }

            output.Append("] ");
            output.Append(args.Percent + "%");

            lock (__consoleWriteLock) {
                Console.Write("\r");
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write(output.ToString());
                Console.ResetColor();
            }
        }
예제 #2
0
파일: JistEngine.cs 프로젝트: Enerdy/Jist
        protected void RaisePercentChangedEvent(string label)
        {
            PercentChangedEventArgs args = new PercentChangedEventArgs();
            double percentComplete = (double)++doneItems / totalLoadingItems * 100;

            if (oldPercent != (int)percentComplete) {
                args.Percent = (int)percentComplete;
                args.Label = label;

                if (PercentChanged != null) {
                    PercentChanged(this, args);
                }
                oldPercent = (int)percentComplete;
            }
        }