GetAsyncKeyState & ContextSwitchDeadlock
Bonjour � tous,
pour les besoins de mon programme, je dois utiliser la fonction GetAsyncKeyState pour r�cup�rer les touches press�es sur le clavier. Pour cela, j'execute dans un thread, le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
public void Run()
{
thdMain = new Thread(new ThreadStart(RunThread));
thdMain.Start();
}
public void Abort()
{
thdMain.Abort();
}
private void RunThread()
{
while (true)
{
int i = 0;
for (i = 1; i < Byte.MaxValue; i++)
{
if (GetAsyncKeyState(i) == Int16.MinValue + 1)
{
KeyPressArgs KeyPressInfo = new KeyPressArgs(Control.ModifierKeys, i);
OnKeyPress(KeyPressInfo);
}
}
}
} |
C'est un code que j'ai r�cup�r� depuis internet puis adapt� � mes besoins.
Le souci est qu'au bout de 60 secondes, un exception du type ContextSwitchDeadlock est g�n�r�e. Je n'arrive pas � contourner ce probl�me de mani�re simple et propre.
Avez vous une id�e � me sugg�rer pour passer outre ce probl�me?
Je vous remercie ;)