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 : S�lectionner tout - Visualiser dans une fen�tre � part
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