moson
Mitglied
Hi Leute,
ich hab in einem Programm ein Thread erstellt. In diesem Thread wird nun eine Endlosschleife ausgeführt. In der Schleife empfängt ein NetworkStream immer neue Daten vom Server (wenn er welche sendet). Wenn ich den Thread nun von aussen beenden will mit:
Thread.Abort();
funktioniert die leider nicht. Hier mal ein bisschen coding...
^
|
Das ist die Methode die im Thread ausgeführt wird...
^
|
Thread wird instanziert und gestartet.
^
|
Damit soll das ganze eigentlich beendet werden. Die Form Schließt sich zwar, aber der Prozess bleibt bestehen, man muss ihn dann extra im Task Manager abwürgen...
Hat jemand ne Idee was ich verändern könnte damit es läuft?
ich hab in einem Programm ein Thread erstellt. In diesem Thread wird nun eine Endlosschleife ausgeführt. In der Schleife empfängt ein NetworkStream immer neue Daten vom Server (wenn er welche sendet). Wenn ich den Thread nun von aussen beenden will mit:
Thread.Abort();
funktioniert die leider nicht. Hier mal ein bisschen coding...
Code:
public void Listener()
{
while(active)
{
int dataLaenge = nwstream.Read(puffer, 0, tcpclient.ReceiveBufferSize);
string recievedData = Encoding.ASCII.GetString(puffer);
textBox3.AppendText("\r\n" + recievedData.Substring(0, dataLaenge));
textBox3.Focus();
textBox3.ScrollToCaret();
textBox4.Focus();
}
}
^
|
Das ist die Methode die im Thread ausgeführt wird...
Code:
private void button1_Click(object sender, System.EventArgs e)
{
tcpclient = new TcpClient(textBox1.Text, Convert.ToInt32(textBox2.Text));
nwstream = tcpclient.GetStream();
puffer = new byte[tcpclient.ReceiveBufferSize];
listen = new Thread(new ThreadStart(Listener));
listen.Start();
}
^
|
Thread wird instanziert und gestartet.
Code:
private void menuItem1_Click(object sender, System.EventArgs e)
{
active = false;
listen.Abort();
Application.Exit();
}
^
|
Damit soll das ganze eigentlich beendet werden. Die Form Schließt sich zwar, aber der Prozess bleibt bestehen, man muss ihn dann extra im Task Manager abwürgen...
Hat jemand ne Idee was ich verändern könnte damit es läuft?