线程启动的困惑
MyClient = new TcpClient();
MyClient.Connect(_strIp, _intPort);
thdRecive = new Thread(new ThreadStart(GetData));
thdRecive.Name = "TcpClient";
thdRecive.Priority = ThreadPriority.AboveNormal;
thdRecive.Start();
resData = new ClsResolveData(setData);
代码运行到thdRecive.Start(); 时就提示线程已经销毁,困惑!不加后面一句resData = new ClsResolveData(setData);就可以正常启动,请问是什么原因啊?
------解决方案--------------------resData = new ClsResolveData(setData);
这句是干嘛的?setData和GetData有什么关系?
------解决方案--------------------是啊,最后一句,跟线程有什么关系,你可以把启动线程的代码放到最后一句
------解决方案--------------------setData里面的逻辑有问题吧。最好吧getData和setData代码贴出来。。。
------解决方案-------------------- //调用拆包类
resData.ResolveData(dataTmp);
你这个resData定义了吗?
resData = new ClsResolveData(setData);
thdRecive.Start();
这样吧?
或者你要做非空判断吧吧。不然会出异常的啊。
------解决方案--------------------resData = new ClsResolveData(setData);应该是跟线程方法有关系,你换到线程方法里面试试
------解决方案--------------------if 里面出异常了,然后你的线程就抛异常了,可能没有捕捉到,修改一下异常捕捉应该可以知道是哪里的问题