关于Console.Read()方法的一些误解!
来源:互联网 发布:linux 程序进程数 编辑:程序博客网 时间:2024/05/26 17:45
一些初学者常常会对Console.Read()方法产生一些误解!具体是什么误解呢?我们先看一段代码:
static void Main(string[] args)
{
int i1 = 123;
Console.WriteLine(d1);
Console.Read();
int i2 = 456;
Console.WriteLine(_i2);
Console.Read(); //这里并没有阻塞程序的运行
Console.WriteLine("abc");
Console.Read();
}
大家常常认为Console.Read()方法可以阻塞程序的运行,实际情况并非如此,第二次调用Read方法并没有阻塞程序的运行,这主要和Read方法的处理方式有关,第一次执行到Read方法的时候,这时会发生阻塞,当你按了Enter,阻塞解除,同时会在输入内容上添加一个终止 序列(Windows下是回车符和换行符)这个时候出入内容只有(/r/n这两个字符),这个Read方法检索的是回车符(/r)。
然后执行到第二次调用Read方法,这次调用的Read方法检索的是换行符(/n)。注意这已经是最后一个字符了
第三次调用Read方法,这是输入内容的所有字符已经检索完毕了,所以Read方法会重新使你的程序处于阻塞状态,如果后续还有Read方法的调用,那么又是新的一次轮回,重复我上面提到检索的步骤!
Read方法的处理方式是:
第一次调用会阻塞你的程序,直到输入Enter,同时会在输入内容上添加一个终止序列(Windows下是回车符和换行符)
后续的Read方法调用不会阻塞你的程序,直到Read方法检索完毕了最后一个字符,这时如果要再调用Read方法,程序又会再次处于阻塞状态了,就像第一次调用Read方法一样,但是这又是新的一次轮回了!
- 关于Console.Read()方法的一些误解!
- 关于C++的一些误解
- 关于json的一些误解
- 关于测试的一些"误解"
- 关于颈椎病的一些误解
- 关于DevOps的一些误解
- 关于console.read的小问题
- 关于Console.read()和Console.ReadLine()缓冲的问题
- 澄清关于BPEL的一些误解
- 关于TF 1118的一些误解
- 关于高质量的一些误解
- java中关于protected的一些误解
- Console.Read() 的 Snippet
- 总结:关于console的一些用法
- sizeof的一些误解
- 一些新手的误解
- 控制台console的一些好玩的方法
- 关于基金定投的一些误解--转载
- CANON CAMERA SDK 佳能 开发包 下载
- Apache和Tomcat服务器整合的基本配置及概要说明
- QT/QTOPIA屏幕和字体旋转的实现
- 一些好的网站(不断更新……)
- [转]Android 触摸屏校准
- 关于Console.Read()方法的一些误解!
- 如何设置让excel的单元格列宽随内容增加而变宽
- 关于闭包
- 使用代码的当前SVN版本构建项目build版号
- Servlet过滤器简介与字符串过滤
- 抽象类和接口的区别
- Rewrite 规则
- CopyU!再次更新
- 使用μC/OS-II操作系统的短信息电话机