crash wanneer je het stopt via taakbeheer...

Status
Niet open voor verdere reacties.

famlam

Gebruiker
Lid geworden
15 okt 2008
Berichten
416
Als ik in mijn programmaatje op 'Afsluiten' klik dan schrijft hij een regel in een bestand (om precies te zijn: " {datum}_{tijd}"). Dit levert geen problemen op, TENZIJ ik het programma via taakbeheer stop (taak beëindigen). Dan zegt deze 'Dit programma reageert niet meer. Wilt u het nu beëindigen?", "Nu beëindigen" "Annuleren". Klik je op annuleren, dan gaat het programma ongestoord door, klik je op nu beëindigen dan krijg je zo'n scherm "ProgrammaX reageert niet meer".

Hoe komt het dat hij ten aller tijde goed afsluit, behalve als je het stopt via taakbeheer?

En hoe kan ik dit voorkomen? Om het programma goed te kunnen starten moet namelijk die tekst in dat bestand staan. Deze wordt namelijk uitgelezen en getoont bij het opstarten.
 
waarom wil je per sé je programma met taakbeheer stoppen?

Het was een bugreport dat ik ontving, en toen ik het testte klopte het... Bij iemand reageerde het programma raar (volgens hem, hij vergat gewoon het schrijven te stoppen), dus hij stopte het via taakbeheer: reageert niet meer...
Ik zeg dus niet dat ik het zelf wil stoppen met taakbeheer, maar het is en blijft een bug als het erin blijft...
Dus hoe kan ik dit oplossen???
 
mogelijk kun je hier 2 dingen doen
1) zorg ervoor dat de gebruiker 'geleid' wordt. laat geen keuze omtrent het schrijven van een data-bestand en/of manier van beïndigen.
2) de foutmelding van taakplanner ligt waarschijnlijk aan de manier van afsluiten. mogelijk heb je bij form_unload een stukje code?
 
@albertw: uw tweede optie lijkt me sterk, want als de gebruiker gewoon afsluit, doet hij het wel.

@famlam: mocht je een sub hebben die form_closing heet, zet er dan de regel Application.DoEvents(), anders plaats je dit in je class:

Code:
Private Sub Form1_FormClosing(...) Handles Form1.FormClosing
Application.DoEvents()
End Sub

En als je dit ook na de regel waar de tekst wordt geschreven plaatst, kan het misschien met taakbeheer worden gestopt.
 
@albertw: uw tweede optie lijkt me sterk, want als de gebruiker gewoon afsluit, doet hij het wel.

@famlam: mocht je een sub hebben die form_closing heet, zet er dan de regel Application.DoEvents(), anders plaats je dit in je class:

Code:
Private Sub Form1_FormClosing(...) Handles Form1.FormClosing
Application.DoEvents()
End Sub

En als je dit ook na de regel waar de tekst wordt geschreven plaatst, kan het misschien met taakbeheer worden gestopt.
Application.DoEvents() werkt... Maar wat doet het eigenlijk?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan