C#线程异常错误

时间:2014-03-22 06:43:52

标签: c# multithreading exception

我正在使用C#并为一组服务器代码添加线程。它的作用是接受任何客户端,如果有任何挂起的连接,然后创建一个客户端句柄线程来处理来自客户端的消息。

问题是我的代码在客户端连接并创建线程时抛出异常。我已经调试了足够的知道线程本身,但我不知道为什么。我以为我正确处理了它。代码在不处理线程的情况下工作,所以我不确定出了什么问题: 快速注意:NetTcp_Acpt是一个List< TcpClient>和NetTcp_Thrd是一个列表<线程>。

        try {
            if ( NetTcp_Sock.Pending() == true ) {
                //Asynchronously accept the client;
                TcpClient myClient = await NetTcp_Sock.AcceptTcpClientAsync();
                NetTcp_Acpt.Add( myClient );
                int myID = NetTcp_Acpt.Count;

                //Create new thread to handle client data;
                Thread myThread = new Thread( () => Net_Handle( myClient , Convert.ToString( myID ) , myID ) );
                myThread.Name = Convert.ToString( myID );
                NetTcp_Thrd.Add( myThread );
                myThread.Start();

                Console.WriteLine( "Client: " + Convert.ToString( myID ) + " connected!" );
            }
        } catch( Exception ex ) {
            //NOTE:Exception always thrown, result of: Client Threads on lines 31 to 34;
            //Excepion needs fixing;
            Console.WriteLine( ex.ToString() );
        }

1 个答案:

答案 0 :(得分:1)

确保在添加客户端之前已初始化NetTcp_Acpt集合。

初始化意味着:

NetTcp_Acpt = new System.Collections.Generic.List<TcpClient>();

这就是您的代码中缺少的内容。