Socket 和Thread.Abort问题

sheng5521627 2010-10-15 10:55:03

TcpListener lis = null;
private void button1_Click(object sender, EventArgs e)
{
lis = new TcpListener(2100);
lis.Start();
System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(f));
t.Start();
//t.Abort();
}
private void f()
{
lis.AcceptSocket();
}
private void button2_Click(object sender, EventArgs e)
{
lis.Stop();
}


我本想当点击button2时,关闭lis对象
但窗体也关闭了
而我添加t.Abort后,窗体不会关闭了
我想知道窗体和子线程之间存在什么样的联系
...全文
103 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
sprc_lcl 2010-10-15
  • 打赏
  • 举报
回复
        TcpListener lis = null;
Thread t;
private void button1_Click(object sender, EventArgs e)
{
lis = new TcpListener(2100);
lis.Start();
t = new System.Threading.Thread(new System.Threading.ThreadStart(f));
t.IsBackground = true;
t.Start();
}
private void f()
{
while (true)
{
Socket s = lis.AcceptSocket();
//do s
}
}
private void button2_Click(object sender, EventArgs e)
{
try
{
t.Abort();
}
catch
{ }
lis.Stop();

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧