2010-10-14 21 views
6


Bunun için ReadKey'i kullanabileceğimi biliyorum, ancak kullanıcı bir tuşa basana kadar uygulamayı donduracak. Bazı döngüleri çalıştırmak ve hala tepki vermek mümkün mü (konsol uygulamasında) mümkün mü? Sadece olayları düşünebilirim ancak konsolda nasıl kullanacaklarını bilmiyorum. Fikrim, döngünün her yineleme sırasında girişi kontrol etmesiydi.C# bir uygulamayı durdurmadan kullanıcı girişini okuma

+0

Şüphesiz uygulamanızın kullanıcı girişini kabul etmeye hazır durumda olmasını istersiniz, bu nedenle tuşa basıldığında bazı işlevler yapabilirsiniz. Veya bu işlem bir işlemi iptal etmek için bir düğmeye basmak gibi mi? – jimplode

+0

Evet ama harika bir örnek bir oyun - bazı döngüleri (düşman hareketi, ne olursa olsun) çalıştırmanız gerekiyor ama yine de kayıt girdisi – Ptr

cevap

7

System.Console.ReadKey(true) içine çağırır ve bir mesaj kuyruğuna basıldığında tuşları (ve diğer olayları) koyar ayrılmış bir iş parçacığı sahip olmaktı.

Ana iş parçacığı, bu sıranın bir döngüde (bir Win32 uygulamasında ana döngüye benzer şekilde) çalışmasını sağlayarak, işleme ve olay işleme işlemlerinin tek bir iş parçacığında ele alınmasını sağlar.

+0

Hmm'yi görüyorum, bu yüzden nasıl kolay bir yol olduğunu tahmin ediyorum. Teşekkürler – Ptr

1

Döngü ayrı bir iş parçacığında çalışır. Onlar yolu kendim uygulama için yapmış

class Program 
{ 
    private static string input; 

    public static void Main() 
    { 
    Thread t = new Thread(new ThreadStart(work)); 
    input = Console.ReadLine(); 

    } 

    private static void work() 
    { 
    while (input == null) 
    { 
     //do stuff....  
    } 
    } 
} 
İlgili konular