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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д