![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 18.01.2011
Сообщений: 19
|
![]()
Здравствуйте, сталкнулся с такой проблемой, и очень долго не могу ее решить. Может найдутся умные коллеги которые меня поправят.
Ситуация следующая: Пешется программа для управления оборудованием через USB порт. Для организации очереди передачи данных использую тип Queue q = new Queue();. Добавление и удаление элементов из этой очереди происходит параллельно, т.к. очень большой объем данных, возможно и в этом причина, но по другому никак. Программа рабочая, ошибок компиляции нет. И все бы хорошо, но иногда выскакивает ошибка: при добавлении в очередь оператором q.Enqueue(5); "Невозможно добавить элемент. srcIndex находиться вне диапазона массива". Может кто поможет советом. Еще примечание: добавление и удаление элементов происходит в разных дочерних потоках, Тип очереди объявлен в родительском потоке, ошибок доступа к очереди не наблюдалась.
___________________________________ _________
Самые гениальные идеи - самые простые. Помог с ответом нажми на весы. ![]() |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
вы бы заюзали потокобезопасную очередь чтоли...
в МСДН же написано что обычная очередь не потокобезопасна Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 18.01.2011
Сообщений: 19
|
![]() Цитата:
Вопрос был решен заменой класса Queue<T> на ConcurrentQueue<T>.
___________________________________ _________
Самые гениальные идеи - самые простые. Помог с ответом нажми на весы. ![]() |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка времени выполнения: Индекс находился вне границ массива (pascal) | dijetol | Помощь студентам | 2 | 10.04.2014 16:16 |
Ошибка: Индекс находился вне границ массива | archi-boy | C# (си шарп) | 11 | 15.11.2013 12:45 |
в выделенных ячееках найти числа вне диапазона 5.43 до 5.47 заменить на случаные числа в этом диапазоне? | alx83 | Microsoft Office Excel | 1 | 22.06.2012 05:37 |
C# ошибка:"Индекс находился вне границ массива" | potap88 | Помощь студентам | 16 | 18.04.2010 15:50 |
найдите пожалуйста ошибку qbasic жалуется что число вне диапазона когда ввожу | бедный_студент | Помощь студентам | 4 | 10.05.2009 18:25 |