请问使用TcpListener时CPU狂占资源,衣问有什么好的解决办法吗

解决方案 »

  1.   

    System.Threading.Thread.Sleep(10); 
    你程序里的加这样了没?
    或则使用异步方式
      

  2.   

    你可以这样写TcpListener listener = new TcpListener(IPAddress.Any, "1001");
    listener.Start();
    while(true)
    {
          TcpClient client = listener.AcceptTcpClient();  //AcceptTcpClient 是一个阻止方法,不必担心一直循环占用cpu
    }
    //或者你也可以用这样写
    while(true)
    {
        if(listener.Pending())
          TcpClient client = listener.AcceptTcpClient();  //AcceptTcpClient 是一个阻止方法,不必担心一直循环占用cpu
        else
          Thread.Sleep(100);
    }
      

  3.   

    我是这样写的啊,可CPU狂占50%以是
      

  4.   

    启动线程
    while(true)
    {
       if(tcplistener.Pending())
       {
          执行代码
       }
    }