| |
|
|
p.specht
| Frage: Gibt es là pas Speicherlecks, si avec dem Schließen-Croix abgebrochen wird statt avec ESC-bouton?
{$cleq}
cls
var n&=0
Imprimer " Theads qui Reihe pour finissons avec ESC-bouton!"
var thread&=thread.start(procaddr(meinThread),0,»)
var thread2&=thread.start(procaddr(meinZweiterThread),0,»)
repeat
locate 10,10:imprimer n&:inc n&;
waitinput 5
until %clé=27
imprimer "\n Habe Hauptschleife sortir de."
waitinput
thread.stop(thread&)
tandis que thread.is(thread&)
endwhile
thread.close(thread&)
imprimer " Habe Fil Nr. 1 finissez."
waitinput
thread.stop(thread2&)
tandis que thread.is(thread2&)
endwhile
thread.close(thread2&)
imprimer " Habe Fil Nr. 2 finissez."
imprimer " Isch 'abe feddisch..."
waitinput 3000
end
nproc meinThread :parameters thread&,dataLong&,dataString$
whilenot thread.message(thread&)==wm_close
settext(%hWnd,"Mein FensterTitel - ["+time$(0)+"."+substr$(time$(1),1,".")+"]")
sleep(1000)
endwhile
return 0
endproc
nproc meinZweiterThread :parameters thread&,dataLong&,dataString$
whilenot thread.message(thread&)==wm_close
settext(%hWnd,"MEIN FENSTERTI - ("+time$(0)+"."+substr$(time$(1),1,".")+")")
sleep(900)
endwhile
return 0
endproc
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 13.03.2014 ▲ |
|
|
|
|
Nico Madysa | allô Peter,
j'ai mir qui Freiheit pris, deinen Code aus Lesbarkeitsgründen dans [Code]-Blöcke trop mettons. Dabei habe je aussi un paire Doppelpunkte aus deinem Voir le texte source vers Zeilenumbrüche getauscht, weil vous den seiteninternen Einrückungsparser durcheinander gebracht avons.
quoi deine Frage angeht, so habe je ernsthafte Zweifel, dass là un Speicherleck existiert. si du den Schließen-Knopf drückst, wird cela XProfan-la fenêtre avec DestroyWindow détruit et beim Ende des Prozesses devrait aussi alle Threads des Prozesses zum Erliegen venons.
ce sont mais alles seulement Vermutungen. si du es oui c'est ca savons veux, peux du oui dans einer Boucle cela Programme un paire mille la fois appel et ihm ensuite un WM_CLOSE zukommen laisser, bzw. DestroyWindow sur es anwenden.
si sich cela pas im RAM-Verlauf votre Taskmanagers bemerkbar pouvoir, ist qui l'affaire wahrscheinlich sûrement. |
|
|
| |
|
|
|
p.specht
| merci pour qui rasche Antwort, Nico! suis am testen...
qui Frage bezog sich aussi sur cet Anmerkung dans qui xpse-Funktionshilfe, wonach qui Funktion tread.is() fälschlicherweise stets zéro liefert - sonst pourrait cela Hauptprogramm merken et abwarten, si encore Threads werken. Kennt là quelqu'un une work-around? Gruss
P.S.: avec 'Mutex' zur Synchronisation muss je mich aussi seulement beschäftigen. Einen Vorteil à Polling vois je derzeit plutôt pas. Den gibt es scheinbar seulement chez Problemarten, qui mir jusqu'alors encore pas untergekommen sommes. |
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 17.03.2014 ▲ |
|
|
|
|
Nico Madysa | si du aucun hohen Geschwindigkeiten brauchst, wäre un Workaround, XProfan-Multiprozessing trop verwenden. c'est langsamer, funktioniert mais wenigstens. prochain Alternative wäre, avec PExec une neuen Prozess trop starten, dans dem mais wiederum une NProc aufzurufen. c'est hässlich, mais ce sont Workarounds oui la plus part du temps. |
|
|
| |
|
|
|
| p.specht (13.03.14)
Frage: Gibt es là pas Speicherlecks, si avec dem Schließen-Croix abgebrochen wird statt avec ESC-bouton?
Windows säubert (zumindest ab je crois) Version XP sowieso chez Prozessende.
cela Programme hätte mais Race-Condition-Probleme si qui Fil fonctionne et hWnd redet sans dass es hWnd gibt. Müsstest qui guten Ordre halber alors avant destruction des hWnd qui Threads réglé finissons. Somit wird Fenêtre Style 512 wohl unumgänglich. |
|
|
| |
|
|