问题描述
在写控制台应用程序的时候想要 Conslone.Writeline 输出文字的速度慢一些,很简单的一个小问题,百度搜索了一下竟然没找到答案,真是让人无可奈何,想办事情还是要靠Google,搜索了一下之后找到了一个VB.NET的程序,看了看方法都是差不多的。故在此改写记录一下希望百度能够快速收录帮助到后边需要的人。
想要实现这个功能需要使用Thread这个类,在Windows中系统能够同时运行多个程序,每一个正在运行的程序被称为一个进程。同一个进程又可以分为若干个独立的执行流,称为线程。线程需要引用
实现方法:
代码展示:
要想实现控制控制台输出速度的话,在每执行一次Console.WriteLine让该线程阻塞一定的时间即可,由 Thread类的主要方法 这个表格可知使用 Sleep() 这个方法即可实现。在 Console.WriteLine(str); 之后加上 System.Threading.Thread.Sleep(100); 即可括号内数字的单位为毫秒(ms)
static void Main(string[] args)
{
StreamWriter sw = new StreamWriter("MyFile.txt", true, System.Text.Encoding.Unicode);
//sw.WriteLine("第一条语句");
//sw.WriteLine("第二条语句");
sw.Close();
StreamReader sr = new StreamReader("MyFile.txt", System.Text.Encoding.Unicode);
string str;
while ((str = sr.ReadLine()) != null)
{
Console.WriteLine(str);
System.Threading.Thread.Sleep(100);//每执行一次输出阻塞线程100ms
}
sr.Close();
Console.ReadLine();
}
线程的用法还有很多,除了下面表格列出的常用内容外还有很多,这里仅针对 控制Conslone.Writeline的输出速度 这个问题进行描写,其他用途可根据自己的实际情况进行修改。
Thread 类定义
命名空间:System.Threading程序集:mscorlib.dll
创建和控制线程,设置其优先级并获取其状态。
Thread类的主要属性
属性 | 说明 |
IsAlive | 获取一个值,该值指示当前线程的执行状态 |
IsBackground | 获取或设置一个值,指示某个线程是否为后台线程 |
IsThreadPoolThread | 获取一个值,指示线程是否属于托管线程池 |
Name | 获取或设置线程的名称 |
Priority | 获取或设置一个值,该值指示x线程的调度优先级 |
ThreadState | 获取一个值,该值包含当前线程的状态 |
Thread类的主要方法
主要方法 | 描述 |
Start() | 启动线程的执行 |
Suspend() | 挂起线程。如果线程已挂起,则不起作用。 |
Resume() | 继续执行已挂起的线程 |
Interrupt() | 终止处于Wait或者Sleep或者Join状态的线程 |
Join() | 阻塞调用线程,直到某个线程终止时为止 |
Sleep() | 将当前的线程阻塞(休眠)指定的毫秒数 |
Abort() | 终止线程的执行。终止后线程不能通过Start()来启动 |
参考链接:
© 版权声明
作者:晨岩
本站所有文章除特别声明外,均采用 BY-NC-SA 4.0 许可协议。转载请注明出处!
THE END
暂无评论内容