Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Avsluta trådat program; Application.Exit, Environment.Exit...

Postades av 2005-10-13 17:08:20 - Ted Ekeroth, i forum asp.net generellt, Tråden har 10 Kommentarer och lästs av 570 personer

Hej,

jag har skrivit en del program i C# .NET Framework 1.1 samt C# .NET Compact Framework 1.1.

Jag hade tidigare problem i .NET Framework att avsluta program - Application.Exit() fungerade inte (programmet låg fortfarande o körde) men Environment.Exit() fungerade utmärkt!

Problemet i Compact Framework är att Enviroment.Exit() finns inte med, endast Application.Exit() som inte heller fungerar där.

Frågan är hur man går tillväga? Programmet för CF är också trådat.


Svara

Sv: Avsluta trådat program; Application.Exit, Environment.Exit...

Postades av 2005-10-13 17:56:55 - Oskar Johansson

En tråd kan startas på två sätt; 1) Den är som en vanlig tråd, den måste avslutas innan programmet dödas totalt eller 2) Som background, den avslutas rakt av när programmet dödas, en backgorundthread har ingen inverkan på om programmet ska stängas av eller inte

Lösningen på ditt problem är att antingen se till att starta alla trådar som "stör" vid avslut som background eller att manuellt stänga av dem en efter en (loopa igenom alla och försök döda dem)


Svara

Sv:Avsluta trådat program; Application.Exit, Environment.Exit...

Postades av 2005-10-17 19:30:12 - Ted Ekeroth

Mm, i Compact Framework kan man inte lägga trådar att köra i bakgrunden. Lösningen verkar onekligen vara det primitiva att ha en boolean som alla trådar tittar på i den while-sats som körs... =(

Tack för tips!


Svara

Sv: Avsluta trådat program; Application.Exit, Environment.Exit...

Postades av 2005-10-18 00:29:25 - Oskar Johansson

Antingen det eller att helt enkelt avsluta tråden (det finns någon funktion på thread-klassen som är dödlig)


Svara

Sv:Avsluta trådat program; Application.Exit, Environment.Exit...

Postades av 2005-10-19 17:24:45 - Ted Ekeroth

Jaså... hmm.

Jag har nu försökt med med att en public static bool _continue sätts till false när man klickar på Quit-knappen samt att aktuellt Form stängs Close().

Quit-knappen (som ligger i en panel i Client-formen):
<code>
private void quitButton_Click(object sender, EventArgs e)
{
client.Close();
}
</code>

Programmet startar med en Form (Loader) som i sin tur kör igång main-formen (Client). I denna main-form har jag på Closing-eventet:

<code>
private void Client_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
Client._continue = false;
loader.Close();
}
</code>

I min preloader-formen (Loader), som faktiskt startar main-formen, står det:

<code>
private void Loader_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
Application.Exit();
}
</code>

Det ser väldigt bra ut - programmet dör. Eller? För programmet går inte att starta efter att man avslutat det med ovanstående. Det tyder på att nåt inte stämmer ju.

Tankar eller ideér?

MVH


Svara

Sv: Avsluta trådat program; Application.Exit, Environment.Exit...

Postades av 2005-10-20 10:48:27 - Marthin Freij

Jag tror på Thread.Join() och sätta false på din while loop.


Svara

Sv:Avsluta trådat program; Application.Exit, Environment.Exit...

Postades av 2005-10-20 13:31:20 - Ted Ekeroth

Ok, tittat lite på Thread.Join() men förstår inte hur jag ska använda den?

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemthreadingthreadclassjointopic1.asp

"Blocks the calling thread until a thread terminates.
Use this method to ensure a thread has terminated. The caller will block indefinitely if the thread does not terminate."

Hur, när och var använder jag detta i min beskrivning ovan? Ska jag göra en Thread.Join() ... var exakt?

Tacksam för lite hjälp =)



Svara

Sv: Avsluta trådat program; Application.Exit, Environment.Exit...

Postades av 2005-10-20 20:11:00 - Marthin Freij

Jag kanske missförstod diskussionen ovan, men jag fick för mig att du hade skapat några egna trådar med Thread klassen och att dessa körde en metod med en while loop.

För att avsluta en tråd kan du köra join på den, vilket innebär att tråden kommer slås samman med huvudtråden. Detta kommer bli ett serielt anrop, dvs. programlogiken pausas tills tråden har gått in i huvudtråden. Låt säga att din tråd heter t; då skriver du t.Join() där du vill att tråden ska avslutas, t.ex. när programmet ska avslutas.


Svara

Sv:Avsluta trådat program; Application.Exit, Environment.Exit...

Postades av 2005-10-21 11:36:50 - Ted Ekeroth

Du har förstått alldeles korrekt: ett antal trådar skapas i lite olika delar av programmet men jag tvekar på att samtliga är nåbara direkt från huvudklassen.

Loader skapar Client, och det är egentligen i Client som allt händer och sker. Loadern är bara en "preloader" så det ser lite snyggt ut när den laddar.

Men jag ska undersöka lite om det går att göra som du säger. ANdra tips och ideér (även gällande Join()) tas tacksamt emot =)

Det störiga är att efter sökt på Google en hel del hittar jag ingen som har samma problem som jag har: trots att jag kör med Close och Application.Exit, samt ser till att alla trådar tittar på en bool variabel är det nåt som stannar kvar när programmet är avslutat.

Jag kan alltså inte starta programmet igen efter att jag avslutat det. Jag sklickar på .EXE filen men inget händer. Irriterande...


Svara

Sv: Avsluta trådat program; Application.Exit, Environment.Exit...

Postades av 2005-10-21 13:46:13 - Marthin Freij

Kan inte Client klassen ha en Dispose, Close eller Disconnect metod som städar upp dina trådar? Då kan huvudprgrammet anropa den metoden på respektive Client klass.


Svara

Sv:Avsluta trådat program; Application.Exit, Environment.Exit...

Postades av 2005-10-22 14:53:12 - Ted Ekeroth

Jag kom på felet:

det var en GPS-grej som var tvungen att ta Dispose() på det objektet (som meckade med GPS:en).
Jag trodde det räckte att man satta en viss grej till false, men tydligen inte.

Nu avslutas programmet =)


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 606
27 953
271 705
528
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies