请问c#中task为什么会自动结束了,谢谢
写了一个通信程序,client窗口打开的时候执行一个线程,定时向server发送消息
byte[] bdata = Encoding.Default.GetBytes("request");
udpclient.Send(bdata, bdata.Length, host);//往主机发送请求信息
主机也是在form构造函数启动一个接收线程
Task t = new Task(waitClient);
t.Start();
void waitClient(){
ConnServer = new UdpClient(1899);
IPEndPoint iep = new IPEndPoint(IPAddress.Any, 1899);
while (true)
{
Thread.Sleep(100);
byte[] bData = ConnServer.Receive(ref iep);
string str = Encoding.Default.GetString(bData, 0, bData.Length);
....
}
}
怪异的问题发生了,当我每次第一次启动server以及client,程序都能正常通信正常运行。
但过一会,每次当我关闭client程序,重启client的时候,无法怎么向server方发送消息,server都无法接收到。每次只有第一次运行的时候才能正常通信。
我debug了很久,才发现task t这个工作线程,启动的时候还在运行,过一会就没了,就是说这个t线程居然自己结束了,请问这个是怎么回事啊,如果才能让t线程一直运行(我函数中的while(true)死循环都没用?),谢谢
求教高手,这是什么原因啊,小弟查了许多都无法解决!
------解决方案--------------------try{}
catch(Exception ex)
{
ex.ToString() 记录日志
}
------解决方案--------------------waitClient里加个try catch看看到底哪里出错了