У меня есть форма с двумя элементами управления. Элемент управления 1 имеет несколько критериев поиска, и пользователь может нажать кнопку, чтобы начать поиск. Control 2 имеет GridView, который будет отображать результаты поиска, а также имеет PictureBox с анимированным GIF в нем.
Элемент управления 1 содержит метод, который имеет вложенный цикл foreach, выполнение которого занимает более 5 минут (зависит от критериев поиска, иногда он заканчивается почти мгновенно).
Что происходит, так это то, что я вызываю метод в Control 2, который делает PictureBox видимым, и запускается анимированный Gif. Как только выполняется цикл foreach, который занимает некоторое время, изображение полностью останавливается. Всякий раз, когда я показываю какие-либо MessageBoxes, изображение запускается снова (я предполагаю, что это потому, что MessageBox блокируется). Как только MessageBox закрывается, изображение перестает анимироваться.
Полагаю, мне понадобится что-то использовать с многопоточностью, но все, что я пытаюсь (ImageAnimator, Thread вызывает метод, который вызывает Invoke и т. Д.), Похоже, не работает. Любые намеки, с какими событиями / библиотеками мне нужно работать, чтобы это работало? Есть хорошие примеры для подражания?