用While(true)程序没有反应

joeweng 2008-08-01 04:30:14
用Listener不断的监听,但是用While(true)时无限循环时程序窗口不能动,移动窗体的时候显示“没有反应”不知道是哪儿写错了?有什么好办法?

private void StartListening()
{
Listener = new TcpListener(new IPEndPoint(IPAddress.Any, ListenPort));
Listener.Start();
while (true)
{
//try
//{
if (Listener.Pending())
{
Socket CSocket = Listener.AcceptSocket();
Thread ClientService = new Thread(new ThreadStart(ServiceClient));
ClientService.Start();
}
//}
//catch (Exception e)
//{
// MessageBox.Show(e.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
//}
}
}
...全文
265 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
joeweng 2008-08-01
  • 打赏
  • 举报
回复
明白了,窗体本身是一个线程,所以一直在循环不能动。另开一个线程就解决了。谢谢个位,太相信网上的例子把我带到了一个误区
zzyhuian06142 2008-08-01
  • 打赏
  • 举报
回复
新开一个Thread来做监听动作
卧_槽 2008-08-01
  • 打赏
  • 举报
回复
死循环了,一直在跑,当然没反应了。
累都累死了
wdgphc 2008-08-01
  • 打赏
  • 举报
回复
要实现什么功能?

while(true)
{
Thread.Sleep(100);
Application.DoEvents();
}

试试
diandian82 2008-08-01
  • 打赏
  • 举报
回复
死循环了
ericzhangbo1982111 2008-08-01
  • 打赏
  • 举报
回复
因为在循环 所有不动啊

用线程调用

new Thread(new ThradStart(StartListening)).Start();

111,120

社区成员

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

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

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