web-dev-qa-db-ja.com

C#の標準I / Oからのノンブロッキング読み取り

コンソールからのノンブロッキング読み取り機能が必要です。 C#でそれを書くにはどうすればよいですか?

23
Masoud
var buf=new byte[2048];
var inputStream=Console.OpenStandardInput(); //dispose me when you're done
inputStream.BeginRead(buf,0,buf.Length,ar=>{
    int amtRead=inputStream.EndRead(ar);
    //buf has what you need. You'll need to decode it though
},null);
6
spender

Richard Dutton 解決策があります 彼のブログ

while (true)  
{  
    if (Console.KeyAvailable)  
    {  
        ConsoleKeyInfo key = Console.ReadKey(true);  
        switch (key.Key)  
        {  
            case ConsoleKey.F1:  
                Console.WriteLine("You pressed F1!");  
                break;  
            default:  
                break;  
        }  
    }  
    // Do something more useful  
} 
51
odrm