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 :
C'est un code que j'ai récupéré depuis internet puis adapté à mes besoins.
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); } } } }
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![]()
Partager