Bonjour à tous, c'est encore moi
Je viens vers vous pour un problème de manipulation d'IHM à travers un thread. Je sais bien que c'est déconseillé de manipuler directement des champs dans un thread secondaire, j'ai donc voulu mettre en place des événements pour demander au thread principale de manipuler les champs.
Le but étant d'alimenter toutes les 10ms des jauges affichant le volume sonore (statique et dynamique) à un instant T d'un morceau de musique par le biais de bass.dll.
Je déclare donc mes événements :
Les 2 procédures locales :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Evénement(GENERAL_Jauge_Level, "*.*", "Jauge_Level") Evénement(GENERAL_Jauge_Peak, "*.*", "Jauge_Peak")
La procédure du thread secondaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 PROCEDURE GENERAL_Jauge_Level(nParam est un entier, Level est un entier) JAUGE_Volume_Gauche_R1 = Level PROCEDURE GENERAL_Jauge_Peak(nParam est un entier, Peak est un entier) JAUGE_Crete_Gauche_R1 = Peak
Ai-je mal codé quelques choses ? Car systématiquement, au bout de quelques minutes, j'ai le droit à un jolie Access Violation GPF Alors que le but est d'éviter ça !
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 PROCEDURE Record_Deroulement(Stream est un entier) Level est un entier Peak est un entier Memo_Level est un entier BOUCLE SI Stream <> 0 ALORS // LEVEL Level = Max(PoidsFaible(BASS_ChannelGetLevel(Stream)), PoidsFort(BASS_ChannelGetLevel(Stream))) // PEAK LEVEL SI Level > Memo_Level ALORS Peak = Level FIN Memo_Level = Level PostMessage(Handle(FEN_Enregistreur), "Jauge_Level", Level, Level) PostMessage(Handle(FEN_Enregistreur), "Jauge_Peak", Peak, Peak) FIN ThreadPause(10) FIN
Et je ne sais pas vraiment d'où peut venir le problème car j'ai pour erreur "Pile invalide" donc pas de ligne de code précisée... Mais le thread fonctionne parfaitement sans les PostMessage :s
J'ai tous ses messages dans l'observateur d’événements :
Merci.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135 Récipient derreurs INVALID_REQUEST, type 0 Nom dévénement*: Crash PCS EXE Réponse*: Non disponible ID de CAB : 0 Signature du problème : P1 : P2 : P3 : P4 : P5 : P6 : P7 : P8 : P9 : P10 : Fichiers joints*: C:\Users\Kyle\AppData\Local\Temp\CXEE3C8.tmp.txt Ces fichiers sont peut-être disponibles ici*: C:\Users\Kyle\AppData\Local\Microsoft\Windows\WER\ReportArchive\Critical_0_0_00000000_1425e84c Symbole danalyse : Nouvelle recherche de la solution : 0 ID de rapport : 35a10249-4d9f-11e4-8271-90e6ba564153 Statut du rapport : 0 Récipient avec hachage*: Nom de lapplication défaillante wdtst.exe, version : 16.0.12.0, horodatage : 0x4d7a166c Nom du module défaillant : KERNELBASE.dll, version : 6.3.9600.17278, horodatage : 0x53eeb460 Code dexception : 0xe06d7363 Décalage derreur : 0x00012f71 ID du processus défaillant : 0xf48 Heure de début de lapplication défaillante : 0x01cfe1a975adcf5a Chemin daccès de lapplication défaillante : C:\WinDev 16\Programmes\wdtst.exe Chemin daccès du module défaillant: C:\Windows\SYSTEM32\KERNELBASE.dll ID de rapport : 37b01d4a-4d9f-11e4-8271-90e6ba564153 Nom complet du package défaillant*: ID de lapplication relative au package défaillant*: Récipient derreurs , type 0 Nom dévénement*: Crash PCS EXE Réponse*: Non disponible ID de CAB : 0 Signature du problème : P1 : P2 : P3 : P4 : P5 : P6 : P7 : P8 : P9 : P10 : Fichiers joints*: C:\Users\Kyle\AppData\Local\Temp\CXEE3C8.tmp.txt Ces fichiers sont peut-être disponibles ici*: Symbole danalyse : Nouvelle recherche de la solution : 0 ID de rapport : 35a10249-4d9f-11e4-8271-90e6ba564153 Statut du rapport : 262144 Récipient avec hachage*: Récipient derreurs 73566500776, type 1 Nom dévénement*: APPCRASH Réponse*: Non disponible ID de CAB : 0 Signature du problème : P1 : wdtst.exe P2 : 16.0.12.0 P3 : 4d7a166c P4 : KERNELBASE.dll P5 : 6.3.9600.17278 P6 : 53eeb460 P7 : e06d7363 P8 : 00012f71 P9 : P10 : Fichiers joints*: C:\Users\Kyle\AppData\Local\Temp\WERF607.tmp.WERDataCollectionFailure.txt Ces fichiers sont peut-être disponibles ici*: C:\Users\Kyle\AppData\Local\Microsoft\Windows\WER\ReportArchive\AppCrash_wdtst.exe_5d8a5260415c6d507af672aea9eaf6b691b15866_83af85fe_0db9f607 Symbole danalyse : Nouvelle recherche de la solution : 0 ID de rapport : 37b01d4a-4d9f-11e4-8271-90e6ba564153 Statut du rapport : 4104 Récipient avec hachage*: 441e3ca4b61bf17a6468a6d09befcdd7 Récipient derreurs , type 0 Nom dévénement*: APPCRASH Réponse*: Non disponible ID de CAB : 0 Signature du problème : P1 : wdtst.exe P2 : 16.0.12.0 P3 : 4d7a166c P4 : KERNELBASE.dll P5 : 6.3.9600.17278 P6 : 53eeb460 P7 : e06d7363 P8 : 00012f71 P9 : P10 : Fichiers joints*: Ces fichiers sont peut-être disponibles ici*: C:\Users\Kyle\AppData\Local\Microsoft\Windows\WER\ReportQueue\AppCrash_wdtst.exe_5d8a5260415c6d507af672aea9eaf6b691b15866_83af85fe_0351f27d Symbole danalyse : Nouvelle recherche de la solution : 0 ID de rapport : 37b01d4a-4d9f-11e4-8271-90e6ba564153 Statut du rapport : 4100 Récipient avec hachage*:
Partager