Thread Ende

26/10/2008 - 15:52 von Bernhard Mühlhaus | Report spam
Hallo,

ich habe leider immer noch ein Paar Verstàndnisprobleme zu der Lebensdauer
von Threads.

Ich möchte in einer ASP.NET Seite, bevor diese angezeigt wird eine Methode
starten, die etwas lànger benötigt. Um den User nicht ewig vor der Seite
warten zu lassen, wàre da ein Thread von der Vorstellung her angebracht. Das
Ergebnis der Methode im Thread ist für die Anzeige der Seite unwichtig, aber
mir wàre natürlich wichtig, dass der Thread nicht einfach abgebrochen wird,
nachdem die übergeordneten Methoden zur Anzeige der Seite durlaufen wurden.

in der übergordeneten Methode habe ich nun folgendes angesetzt:

{ ...
MessageClass ec = new MessageClass();

ThreadStart ts = new ThreadStart(ec.CreateMessage);
Thread th = new Thread(ts);
th.Start();

... } hier wàre nun von Nöten, dass ec.CreateMessage zuende abgearbeitet
wird, auch wenn die aufrufende Methode beendet wird.

Ist das so, wie ich es mir vorstelle? Wenn ja, beendert sich der Thread dann
auch ohne weiteres Eingreifen (ich wüßte nicht wann ich einen Abort() setzen
sollte, da die ec.CreateMessage ja vom Thread selbst nichts weiß) ohne dass
der IIS durch lauter Prozesse zugemüllt wird.

Vielen Dank im Voraus!
Bernhard
 

Lesen sie die antworten

#1 Mario Fraiß
26/10/2008 - 16:55 | Warnen spam
Am Sun, 26 Oct 2008 07:52:01 -0700 schrieb Bernhard Mühlhaus:

Hallo,

ich habe leider immer noch ein Paar Verstàndnisprobleme zu der Lebensdauer
von Threads.

Ich möchte in einer ASP.NET Seite, bevor diese angezeigt wird eine Methode
starten, die etwas lànger benötigt. Um den User nicht ewig vor der Seite
warten zu lassen, wàre da ein Thread von der Vorstellung her angebracht. Das
Ergebnis der Methode im Thread ist für die Anzeige der Seite unwichtig, aber
mir wàre natürlich wichtig, dass der Thread nicht einfach abgebrochen wird,
nachdem die übergeordneten Methoden zur Anzeige der Seite durlaufen wurden.

in der übergordeneten Methode habe ich nun folgendes angesetzt:

{ ...
MessageClass ec = new MessageClass();

ThreadStart ts = new ThreadStart(ec.CreateMessage);
Thread th = new Thread(ts);
th.Start();

... } hier wàre nun von Nöten, dass ec.CreateMessage zuende abgearbeitet
wird, auch wenn die aufrufende Methode beendet wird.

Ist das so, wie ich es mir vorstelle? Wenn ja, beendert sich der Thread dann
auch ohne weiteres Eingreifen (ich wüßte nicht wann ich einen Abort() setzen
sollte, da die ec.CreateMessage ja vom Thread selbst nichts weiß) ohne dass
der IIS durch lauter Prozesse zugemüllt wird.

Vielen Dank im Voraus!
Bernhard



Hallo,

Die Frage die sich mir dabei stellt ist, ob du wirklich bei jedem
Seitenaufruf durch einen User einen Thread starten möchtest ... bzw. wie
sinnvoll das ist.

Was genau soll dieser Thread denn ca. machen und handelt es sich um eine
Internet- oder Intranet-Applikation?

Lg, Mario Fraiß (Software-Architect und .Net-Engineer)
_____
Besuchen Sie mich auf meinem Blog unter > www.mariofraiss.com

Ähnliche fragen