2011-11-28 3 views
3

키보드에서 키 누름을 수집하고 매초마다 작업을 수행하는 루프를 작성하고 싶습니다. 키보드에서 읽는 몇 가지 방법이있을 것입니다 :시간이 지날 때 키 누르기를 수집하는 방법은 무엇입니까?

whenever (Console.KeyPressed != null) { 
    input_buffer.Add(Console.KeyPressed); 
} 

그리고 어떤 루프 일어나고있을 것입니다 : 사용자가 키를 누를 경우

while (!done) { 
    if (input_buffer.NotEmpty()) { do_stuff(input_buffer.Pop()); } 
    do_other_stuff(); 
    wait(0.5 seconds); 
} 

그래서, 그것은 다음 업데이트하는 동안 처리됩니다는. 키를 누르지 않으면 다음 번 업데이트가 발생합니다.

+0

앱 또는 모든 Windows에서 키보드 이벤트를 캡처 하시겠습니까? –

+0

@JoshSmeaton,이 앱에서. – Joe

+0

@Joe 내 대답에 대해 어떻게 생각하니? 네 넷이 아니야. 넷 4? –

답변

2

.Net 4를 사용중인 경우 아래 코드를 사용할 수 있습니다. 키 누르기를 저장하는 데 ConcurrentQueue, 신호용으로 ManualResetEventSlim, 비동기 적으로 두 코드 부분을 실행하기 위해 작업 병렬 라이브러리에서 Task을 사용합니다.

관련 문제