首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

线程起步的困惑

2013-03-04 
线程启动的困惑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 里面出异常了,然后你的线程就抛异常了,可能没有捕捉到,修改一下异常捕捉应该可以知道是哪里的问题

热点排行