Как я могу добавить элемент в список, если этот элемент, по сути, является указателем и избежать замены каждого элемента в моем списке на самый новый экземпляр этого элемента?
Вот что я имею в виду:
Я занимаюсь обработкой изображений, и есть шанс, что мне придется иметь дело с изображениями, которые приходят быстрее, чем я могу обработать (в течение короткого периода времени). После этого «всплеска» изображений я буду полагаться на тот факт, что могу обрабатывать быстрее, чем средняя частота изображений, и со временем «догоню».
Итак, что я хочу сделать, это поместить мои изображения в <List>
, когда я их получу, тогда, если мой поток обработки не занят, я могу взять изображение из этого списка и передать его.
Моя проблема в том, что я обеспокоен тем, что, поскольку я добавляю изображение «Image1» в список, а затем заполняю «Image1» новым изображением (во время следующего получения изображения), я заменю изображение, сохраненное в списке также с новым изображением (поскольку переменная изображения на самом деле является просто указателем).
Итак, мой код выглядит примерно так:
while (!exitcondition)
{
if(ImageAvailabe())
{
Image1 = AcquireImage();
ImgList.Add(Image1);
}
if(ImgList.Count > 0)
{
ProcessEngine.NewImage(ImgList[0]);
ImgList.RemoveAt(0);
}
}
Учитывая вышеизложенное, как я могу гарантировать, что:
- Я не заменяю все элементы в списке каждый раз, когда изменяется Image1.
- Мне не нужно предварительно объявлять несколько изображений для такой обработки.
- Я не создаю пожирающего память монстра.
Любой совет с благодарностью.