Передача нескольких клиентских данных в двумерный массив - PullRequest
0 голосов
/ 01 ноября 2018

В настоящее время я пытаюсь получить потоковые данные от нескольких клиентов на этот код сервера. Я хочу иметь только одну переменную, чтобы перехватить последние потоки и соответственно обновить. Проблема, с которой я сталкиваюсь, как вы можете видеть на рисунках, состоит в том, что когда я запускаю первый клиентский код, он заполняет серверную переменную, и вторая клиентская программа (тот же код) завершается, потому что «Поток в настоящее время используется предыдущим оператором. в потоке. "

Как передать оба потока в переменную kinectPositions в коде сервера

    private void ClientReceiveData(object sender, ConnectedClient.NetDataEventArgs e)
        {


            if (string.IsNullOrEmpty(e.Message) == false)

            {

                latestSkeletons = Array.ConvertAll(e.Message.Split(new[] { ',', }, StringSplitOptions.RemoveEmptyEntries), Double.Parse);

            }

            double[][,] kinectPositions = { new double[25, 3], new double[25, 3] }; // Initialize an array of 2 20x3 doubles (2 skeletons, 25 joints, 3 coords)
            for (int i = 0; i < 2; i++) // Iterate through the Kinect skeleton object and extract the points
            {
                for (int j = 0; j <25; j++)
                {
                    //result  =  digits[i].Joints[JointsToUse[j]].Position;
                    kinectPositions[e.ID][j, 0] = latestSkeletons[3 * j + 0]; //x
                    kinectPositions[e.ID][j, 1] = latestSkeletons[3 * j + 1];  //y
                    kinectPositions[e.ID][j, 2] = latestSkeletons[3 * j + 2]; //z
                }
            }

Server Array Picture

Client Error Picture

...