Queue.CopyTo в массив меньшей длины так как длина быстро нарастает - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Прошу помощи или совета. Поток 1 получает данные непрерывно сохраняет их в очередь, поток 2 редко случайно. Получив данные поток 2 создает условия, передает условия в поток 1 и поток 1 сверяет все новые данные с этим условием, так же поток 2 запускает поток 3 который проверит всю очередь созданную потоком 1 на соответствие этому условию - вдруг пропустил. После создания условия очередь следующая за созданием условия не должна рассматриваться потоком 3, но за эти микросекунды она может увеличится на 3 а то и на 10 записей, очередь нужна для других вызовов потока 2, остановить нельзя. (Существует условия отчисти очередей-затишье) Мое решение Queue.CopyTo когда поток 2 сформирует условие очередь будет скопирована, но как отбросить лишнее загруженное в очередь после, даже за время определения длинны очереди она может увеличиться первая очередь получив условие получив выполняющие это условие данные не помещает их в очередь. поток один нельзя останавливать. try catch сильно замедлит выполнение, пока случайно увеличение массива для копирование очереди не совпадет с очередью
         Queue<int> myQueue = new Queue<int>();
 
            for (int ii=0;ii<5;ii++)
            {
                myQueue.Enqueue(ii);
            }
 
          int [] myMassivwQueue= new int[3];
 
         //   try
         //   {
                myQueue.CopyTo(myMassivwQueue, 0);
         //   }
        //    catch
         //   {
 
         //   }

Решение задачи: «Queue.CopyTo в массив меньшей длины так как длина быстро нарастает»

textual
Листинг программы
int[] myMassivwQueue = myQueue.ToArray();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5
Похожие ответы