none
关于win7与winXP下的Console.Read()与Console.ReadKey()出现的(算是)兼容问题 RRS feed

  • 常规讨论

  • 今天写了这样的一段代码(引用.net FrameWork 4.0框架)

    using System; using System.Collections.Generic; using System.Linq; using System.Text;

    using System.Timers; namespace TestExe { class Program { static string displayString = "我是一段字符串,每隔一秒出现一次."; static void WriteChar(object source, ElapsedEventArgs e) { Console.WriteLine(displayString); } static void Main(string[] args) { Timer myTimer = new Timer(1000); myTimer.Elapsed += new ElapsedEventHandler(WriteChar); myTimer.Start(); Console.ReadKey(); } } }

    然后出现了问题: 那段字符串完全没有出现,如下图

    (新用户不能发图片或链接,只好直接贴地址了)

    http://
    social.msdn.microsoft.com/Forums/getfile/181707

    但是,我把生成的程序 TestExe.exe复制到winXP的虚拟机下,双击运行却完全正常,字符串每一秒出现一次,按回车后窗口消失.

    随后经过一番琢磨,发现在win7下,运行这个程序按回车键后,在窗口消失之前出现了字符串!

    于是我尝试性的把Console.ReadKey()改为了Console.Read(),结果程序正常运行,如图:

    http://
    social.msdn.microsoft.com/Forums/getfile/181713

    然后我就觉得蛮不可思议,为什么一模一样的代码,在win7 sp1与winXp sp3下却有这样的差别,是系统的问题,还是说仅仅是ReadKey()与Read()的问题?希望有高手能解答一下

    或者也可以试一试这段代码,看看是不是仅仅可能是我的系统出了问题!

    • 已更改类型 纯小白 2012年10月19日 14:54 主要是想知道为什么同样的代码在win7和winXp下以不同方式运行的原因
    2012年10月19日 7:17

全部回复