当前位置: 代码迷 >> C# >> c# close函数 揭示检测到无法访问的代码
  详细解决方案

c# close函数 揭示检测到无法访问的代码

热度:95   发布时间:2016-05-05 03:13:52.0
c# close函数 提示检测到无法访问的代码
c# 编程时在关闭总提示检测到无法访问的代码,我看了一下网上的介绍基本都是说前有使用了RETURN或者函数已经有返回值的情况下才会出现,但是我的代码里没有啊,请教一下各位大神。
while (m_bListening)
            {
                //测试是否有数据
                try
                {
                    //本地监听端口
                    //slocPort = 8012;
                    slocPort = Convert.ToInt16(locPort.Text);
                    IPAddress ip = System.Net.IPAddress.Parse(slocIP);
                    TcpListener listener = new TcpListener(ip, slocPort);
                    listener.Start();           // 开始侦听
                    //接收数据
                    toolStripStatusLabel1.Text = "监听中..";
                    while (true)
                    {
                        TcpClient m_client = listener.AcceptTcpClient();
                        string cip;
                        cip = m_client.Client.RemoteEndPoint.ToString();
                        ClientHandle m_handle = new ClientHandle();
                        m_handle.clientsocket = m_client;
                        Thread m_clientthread = new Thread(new ThreadStart(m_handle.ResponseClient));
                        m_clientthread.Start();

                    }
                    //listBox1.Items.Add(cip);
                    listener.Stop();  //就是这里提示检测到无法访问的代码

                }
                    

                catch (Exception re)
                {
                    MessageBox.Show(re.Message);
                }
               
                
            }

------解决思路----------------------
因为你写了 while (true),后边代码都是“无法执行到的代码”了。
------解决思路----------------------
 while (true)导致的,这个是无限循环
------解决思路----------------------
14 到 24 行是一个死循环
------解决思路----------------------
所以我们应该庆幸 c# 编译器帮我们做了这么多好事儿。这要是换成 jaavscript,那可是没什么静态检查,完全靠瞎测试了(当然这里是夸张了一些,测试还是有一定方法的)。
------解决思路----------------------
引用:
Quote: 引用:

因为你写了 while (true),后边代码都是“无法执行到的代码”了。


我也怀疑是这个,但是应该怎么改呢。。。


逻辑上先把流程图画出来。这类代码不要抄。
------解决思路----------------------
编译器是智能滴,那能检查到你while(true) 无限循环,根本没有机会执行到后面那个close
------解决思路----------------------
引用:
Quote: 引用:

因为你写了 while (true),后边代码都是“无法执行到的代码”了。


我也怀疑是这个,但是应该怎么改呢。。。

这个要问你自己,为什么要写while(true),却没有跳出的代码
  相关解决方案