Avatar billede thedarkrider Nybegynder
31. oktober 2004 - 18:34 Der er 19 kommentarer og
2 løsninger

Skriv til tekstfil når programmet lukkes?

Hej

Jeg vil gerne have denne stump kode udført når mit program lukkes. Men hvordan gør jeg det?

FileStream file = new FileStream("log_"+SystemInformation.UserName.ToLower()+".log",FileMode.Append,FileAccess.Write);
StreamWriter sw = new StreamWriter(file);
sw.Write(SystemInformation.UserName+" loggede på: "+myTime.ToString());
sw.WriteLine();
sw.Close();
file.Close();

På forhånd tak
/TDR
Avatar billede arne_v Ekspert
31. oktober 2004 - 18:51 #1
Jeg tror at du har en god lejlighed til at lave noget så sjældent som
en destructor/finalizer !

Put den kode i destructor/finalizer for en main klasse der gør det hele, så
tror jeg at du får den ønskede effekt.
Avatar billede casualty Nybegynder
31. oktober 2004 - 18:54 #2
Hvis det er en win appl. med en form kan du jo lægge koden i din forms Closing event

Mvh Casualty
Avatar billede skwat Praktikant
01. november 2004 - 08:14 #3
Er det ikke bedst at lægge det i slutningen af main?
Hvis han bruger arne_v's udgave så er det ikke når programet terminere, men når et orbjekt terminere.
casualtys eksempel er når en form bliver lukket, hvilket i princippet kan ske flere gange, og hvis han på et tidspunkt laver om i logikken, ja så kan han blive fucked.
Avatar billede arne_v Ekspert
01. november 2004 - 08:24 #4
Et program kan afslutte på andre måder end ved at løbe bunden ud af Main !
Avatar billede skwat Praktikant
01. november 2004 - 08:45 #5
Ok, med fare for at virke uviden så er det vel kun hvis der sker noget grimt.
Avatar billede skwat Praktikant
01. november 2004 - 08:55 #6
og i det tilfælde kunne man lave en try catch finalize
Avatar billede arne_v Ekspert
01. november 2004 - 09:57 #7
Environment.Exit(0);

er ikke så grimt.
Avatar billede arne_v Ekspert
01. november 2004 - 09:57 #8
Men ja en finally i Main var helt klart også en mulighed.
Avatar billede cpufan Juniormester
01. november 2004 - 20:02 #9
hvis du pakker den ind i en
finally
{....
....
...}
Sikrer du at dette altid afvikles inden programmet exit'er helt,
også selvom der er kommet en exception
Og finally-blocken kan du snildt ligge ind i bunden af din main.
den afvikles kun ved exit.
Avatar billede arne_v Ekspert
01. november 2004 - 20:07 #10
cpufan>

Hvorfor ligger du et svar med noget som allerede er nævnt 2 gange af andre ?

(jeg formoder at skwat bare har lavet en tyrk fejl)
Avatar billede cpufan Juniormester
01. november 2004 - 20:23 #11
jeg trækker mig gerne
hvis thedarkrider mener at det blot er en gentagelse..

Jeg mener til gengæld at min forklaring er den eneste der er korrekt.
Avatar billede arne_v Ekspert
01. november 2004 - 20:40 #12
Da du er den eneste som har forklaret hvad finally betyder, så er du også
den eneste der har givet en korrekt forklaring på hvad den gør.

Men .......................
Avatar billede arne_v Ekspert
01. november 2004 - 21:09 #13
Jeg har iøvrigt lige leget lidt.

Destructor bliver ikke nødvendigvis kaldt ved exception.

Finally bliver ikke nødvendigvis kaldt sidst i en multithreaded app.

Der er mange løsninger. Men svært at finde en virkeligt god.

Vi savner noget ligesom Java's Runtime addShutdownHook.
Avatar billede cpufan Juniormester
01. november 2004 - 21:11 #14
arne_v
jeg kan sagtens forstå hvad du mener, og jeg plejer heller ikke at blande mig i allerede besvarede spørgsmål, men jeg syntes alligevel at det jeg skrev skulle med.
- jeg afstår gerne fra point - dem bliver jeg alligevel ikke tyk og fed af.
Avatar billede cpufan Juniormester
01. november 2004 - 21:13 #15
dvs. at finally skal oprettes med hver tråd?
Avatar billede thedarkrider Nybegynder
01. november 2004 - 21:19 #16
Tak for hjælpen. Jeg vil kigge på det en gang i ugens løb, og vende tilbage med point. Så hvis i alle vil lægge et svar...
Avatar billede arne_v Ekspert
01. november 2004 - 21:22 #17
cpufan>

Jeg synes at det er helt fint at du blander dig i debatten. Det er nemlig
en interessant diskussion.

Jeg stejlede over at det blev lagt som svar.

Muligvis er jeg bare lidt spids idag.  :-)
Avatar billede arne_v Ekspert
01. november 2004 - 21:24 #18
Hvis det ikke er et problem at det bliver udført flere gange og man har adgang
til koden for alle tråde kunne man ligge en finally ind i alle.

Der er stor sandsynelighed for at det er nemt at løse for et konkret
program.

Det er bare svært at løse helt generelt.
Avatar billede arne_v Ekspert
01. november 2004 - 21:25 #19
og et svar fra mig
Avatar billede skwat Praktikant
02. november 2004 - 01:06 #20
arne_v, du har ret, det er bare en slå fejl, eller noget.(hvornår får eksperten syntax completion?)

Mht. flere trådet programmer, hvordan undgår du så at Finally bliver kaldt?
Avatar billede arne_v Ekspert
02. november 2004 - 08:45 #21
Kalder Join inden den relevante kode !?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester