Debuggen beenden - Thread

23/01/2009 - 10:32 von Brian Schmalisch | Report spam
Hallo,

ich habe noch einmal eine Frage, bei der ich die Lösung nicht finde. Ich
starte in meiner Anwendung im Hintergrund einen TCP Server - ausgelagert in
einem Thread:
private int tcpPort = 11000;
Thread t1 = null;

if (propTcp.Attributes["AutoStart"].Value == "1")
{
try
{
t1 = new Thread(new
ParameterizedThreadStart(StarteServer));
t1.Start(tcpPort);
SchreibeLogDateien("TCP Server started.");
}
catch (Exception ex)
{
SchreibeErrorDateien(ex.Message);
}
}

Beenden tue ich ihn so:
protected override void Dispose(bool disposing)
{
if (t1 != null)
{
t1.Abort();
}
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}

Wenn ich das ganze jetzt mit F5 im VS starte, so funktioniert meine
Anwendung auch. Beende ich mein Programm, so wird vom VS das Debuggen nicht
beendet. Ich muss dieses dann noch einmal über das Menü Debuggen - Debugging
beenden machen.

Ist meine Vorgehensweise oben nicht richtig und was mache ich hier verkehrt?

Gruss

Brian
 

Lesen sie die antworten

#1 Frank Weichert
23/01/2009 - 10:43 | Warnen spam
Hi Brian,
wird dein Dispose denn auch aufgerufen (Breakpoint setzen ;o)).
Wenn ich es richtig verstanden habe, dann muss der Dispose manuell
aufgerufen werden...
http://msdn.microsoft.com/en-us/lib...spose.aspx
HTH
Frank


Brian Schmalisch schrieb:
Hallo,

ich habe noch einmal eine Frage, bei der ich die Lösung nicht finde. Ich
starte in meiner Anwendung im Hintergrund einen TCP Server - ausgelagert
in einem Thread:
private int tcpPort = 11000;
Thread t1 = null;

if (propTcp.Attributes["AutoStart"].Value == "1")
{
try
{
t1 = new Thread(new
ParameterizedThreadStart(StarteServer));
t1.Start(tcpPort);
SchreibeLogDateien("TCP Server started.");
}
catch (Exception ex)
{
SchreibeErrorDateien(ex.Message);
}
}

Beenden tue ich ihn so:
protected override void Dispose(bool disposing)
{
if (t1 != null)
{
t1.Abort();
}
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}

Wenn ich das ganze jetzt mit F5 im VS starte, so funktioniert meine
Anwendung auch. Beende ich mein Programm, so wird vom VS das Debuggen
nicht beendet. Ich muss dieses dann noch einmal über das Menü Debuggen -
Debugging beenden machen.

Ist meine Vorgehensweise oben nicht richtig und was mache ich hier
verkehrt?

Gruss

Brian

Ähnliche fragen