C#控制台显示进度条
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace ProgressBar
{
class Program
{
static void Main(string[] args)
{
ConsoleColor colorBack = Console.BackgroundColor;
ConsoleColor colorFore = Console.ForegroundColor; //Console.SetCursorPosition(0, 0);
Console.WriteLine("Loading...");
////绘制界面
//Console.SetCursorPosition(0, 2);//指定输出位置
//Console.WriteLine("*************** Acknowledged order ***************");
//Console.BackgroundColor = ConsoleColor.DarkCyan;
//for (int i = 0; ++i <= 50; )
//{
// Console.Write(" ");
//}
//Console.SetCursorPosition(0, 3);
//Console.WriteLine(" ");
//Console.BackgroundColor = colorBack;
//Console.SetCursorPosition(0, 4);
//Console.WriteLine("0%");
//Console.SetCursorPosition(0, 5);
//Console.WriteLine("**************************************************"); int count = 0;
int index = 0;
double prePercent = 0; List<string> list = new List<string>() { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" };
count = list.Count;
//Console.SetCursorPosition(0, 1);
//Console.WriteLine("Total:" + count);
//count = 0;
System.Threading.Thread.Sleep(5000);//模拟加载等待
if (count > 0)
{
//Console.SetCursorPosition(0, 1);
Console.WriteLine("Total:" + count);
//绘制界面
Console.WriteLine("********************* Loading *********************");
Console.BackgroundColor = ConsoleColor.DarkCyan;
for (int i = 0; ++i <= 50; )
{
Console.Write(" ");
}
Console.WriteLine(" ");
Console.BackgroundColor = colorBack;
Console.WriteLine("0%");
Console.WriteLine("***************************************************"); foreach (string str in list)
{
#region 绘制界面
//绘制界面
index++;
double percent;
if (index <= count)
{
percent = (double)index / count;
percent = Math.Ceiling(percent * 100);
}
else
{
percent = 1;
percent = Math.Ceiling(percent * 100);
}
// 开始控制进度条和进度变化
for (int i = Convert.ToInt32(prePercent); i <= percent; i++)
{
//绘制进度条进度
Console.BackgroundColor = ConsoleColor.Yellow;//设置进度条颜色
Console.SetCursorPosition(i / 2, 3);//设置光标位置,参数为第几列和第几行
Console.Write(" ");//移动进度条
Console.BackgroundColor = colorBack;//恢复输出颜色
//更新进度百分比,原理同上.
Console.ForegroundColor = ConsoleColor.Green;
Console.SetCursorPosition(0, 4);
Console.Write("{0}%", i);
Console.ForegroundColor = colorFore;
//模拟实际工作中的延迟,否则进度太快
System.Threading.Thread.Sleep(50);
}
prePercent = percent;
#endregion
} Console.SetCursorPosition(0, 6); Console.WriteLine("Loading Complete.");
}
Console.ReadLine();//会等待直到用户按下回车,一次读入一行
}
}
}
效果图:

C#控制台显示进度条的更多相关文章
- Python 进度条原理
#进度条原理 import sys,time for i in range(50): sys.stdout.write("#")#标准输出 #若不能够按照时间一个一个依次显示,则代 ...
- Android -- 真正的 高仿微信 打开网页的进度条效果
(本博客为原创,http://www.cnblogs.com/linguanh/) 目录: 一,为什么说是真正的高仿? 二,为什么要搞缓慢效果? 三,我的实现思路 四,代码,内含注释 五,使用方法与截 ...
- css3圆形百分比进度条的实现原理
原文地址:css3圆形百分比进度条的实现原理 今天早上起来在查看jquery插件机制的时候,一不小心点进了css3圆形百分比进度条的相关文章,于是一发不可收拾,开始折腾了... 关于圆形圈的实现,想必 ...
- 图解CSS3制作圆环形进度条的实例教程
圆环形进度条制作的基本思想还是画出基本的弧线图形,然后CSS3中我们可以控制其旋转来串联基本图形,制造出部分消失的效果,下面就来带大家学习图解CSS3制作圆环形进度条的实例教程 首先,当有人说你能不能 ...
- 超炫的HTML5粒子效果进度条 VS 如何规范而优雅地code
最近瞎逛的时候发现了一个超炫的粒子进度效果,有多炫呢?请擦亮眼镜! // _this.ch){ _this.particles.splice(i, 1); } }; this.Particle.p ...
- WPF自定义控件第一 - 进度条控件
本文主要针对WPF新手,高手可以直接忽略,更希望高手们能给出一些更好的实现思路. 前期一个小任务需要实现一个类似含步骤进度条的控件.虽然对于XAML的了解还不是足够深入,还是摸索着做了一个.这篇文章介 ...
- python实现一个控制台下的进度条
今天写练习爬虫感觉很需要个进度条,就随手用函数实现了一个,到了晚上突然感觉到这个东西应该单独写出来以后肯定用用得着. 代码也很简单,我就不细讲了,直接上代码了. 测试代码: instance.py i ...
- 【Win 10 应用开发】通过数据绑定更新进度条
实现 INotifyPropertyChanged 接口可以在属性更改后通知数据的使用者,这个相信大伙儿都知道.于是,有朋友会问:对于要实时显示进度的情况,比如更新进度条,能用这个实现吗? 当然是可以 ...
- springMVC+ajax 文件上传 带进度条
前端代码: <form id= "uploadForm"> <p >指定文件名: <input type="text" name= ...
随机推荐
- Asp.Net Core 中利用QuartzHostedService 实现 Quartz 注入依赖 (DI)
QuartzHostedService 是一个用来在Asp.Net Core 中实现 Quartz 的任务注入依赖的nuget 包: 基本示例如下: using System; using Syst ...
- Lua的热更新学习笔记_01
热更新的的实现方式 1.使用lua脚本编写游戏的UI或者其他的逻辑 2.使用C#的反射技术 3.使用C#Light AssetBundle是什么? 1.unity提供一个资源更新技术,就是通过Asse ...
- PKU 1019 Number Sequence(模拟,思维)
题目 以下思路参考自discuss:http://poj.org/showmessage?message_id=176353 /*我的思路: 1.将长串数分成一个个部分,每个部分是从1到x的无重复的数 ...
- 通过分析反汇编还原 C 语言 if…else 结构
让我们从反汇编的角度去分析并还原 C 语言的 if - else 结构,首先我们不看源代码,我们用 OllyDBG 载入 PE 文件,定位到 main 函数领空,如下图所示. 在图示中,我已经做好了关 ...
- TFS代码迁移Git
描述 将TFS上的代码迁移到Git做版本控制. 参考地址 tfs-git下载:https://github.com/git-tfs/git-tfs/releases chocolatey安装:http ...
- git常见问题总结
1.每次上传文件的时候,有很多iml文件容易不小心上传上去,然后报错,所以可以把这些文件取消上传 如图所示,每次提交时,都不会显示标红文件 具体操作步骤如下:
- 关于bitnami redmine 的一些问题
http://blog.csdn.net/yanyaming920817/article/details/50059523
- linux下select,poll,epoll的使用与重点分析
好久没用I/O复用了,感觉差点儿相同都快忘完了.记得当初刚学I/O复用的时候花了好多时间.可是因为那会不太爱写博客,导致花非常多时间搞明确的东西,依旧非常easy忘记.俗话说眼过千遍不如手过一遍,的确 ...
- BNU 34986 Football on Table
"Bored? Let's play table football!" The table football is played on a rectangular table, u ...
- 18005 It is not ugly number
18005 It is not ugly number 时间限制:2000MS 内存限制:65535K提交次数:0 通过次数:0 题型: 编程题 语言: G++;GCC Description ...