线程起步的困惑
线程启动的困惑MyClient new TcpClient()MyClient.Connect(_strIp, _intPort)thdRecive new Thread(
线程启动的困惑
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 里面出异常了,然后你的线程就抛异常了,可能没有捕捉到,修改一下异常捕捉应该可以知道是哪里的问题