Вот стал вроде как простой вопрос.
Необходимо в windows forms получить изображение из видео потока. Изображение должно выводиться не полноразмерным, а только его выбранная часть, каждый раз его координаты могут изменяться. Для этого я на panel
бросил pictureBox
, в panel
включил автоскрол, на pictureBox
включил autosize
. При запуске программы и загрузке изображения в pictureBox
выдаёт сообщение:
Необработанное пользовательское исключение
System.InvalidOperationException
: "Недопустимая операция в нескольких потоках: попытка доступа к элементу управления panel1
не из того потока, в котором он был создан."
Такая же ситуация происходит и при работе с обычным изображением, загружаешь и опять то же сообщение.
Как обработать это исключение, чтобы не выбивало постоянно это сообщение? Если это проще простого делается - извините, в программировании ещё зелен, а некоторые задачи уже нужно решать.
Вызов элемента управления из каких-либо других потоков, за исключением потока, в котором был создан элемент управления, без использования метода Invoke является нарушением безопасности.
При изменении элемента управления из другого потока (не владельца контрола) кидается InvalidOperationException.
Помещая код внутрь Control.Invoke(Delegate) вы сразу выполняете его в потоке, создавшем Control. А помещая внутрь Control.BeginInvoke(Delegate) код выполняется выполняется ассинхронно, т.е. вы не тратите время на ожидание окончания отработки кода.
this.BeginInvoke(new Action(() => MessageBox.Show("Это тест")));
Как видите, я даже вывод обычного диалога вставил в виде BeginInvoke, т.к. даже такой невинный вызов может вызвать InvalidOperationException, если его выполнять не в основном потоке GUI.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Я пишу сайт на которое пользователи загружают ms word документы, а сайт редактирует документы с помощью COMПоэтому мне нужно чтобы на сервере...
привет есть кодЯ отправляю запрос и в ответ получаю файл