Я разрабатываю выигрышные формы, непрерывный круглосуточный видеоплеер, и мне нужна помощь, чтобы решить, какой класс Threading удовлетворяет моим потребностям. Это моя первая попытка многопоточности. Я знаком с классом BackgroundWorker, парой свойств, которые нужно установить, и событиями, которые нужно обработать, но я не стал углубляться в остальные классы Threading. Я считаю задачи своего приложения простыми, но могу ошибаться в отношении уровня простоты.
Вот некоторые функции плеера:
Считывает базу данных SQL Server и отображает данные в DataGridView.
Добавляет DataRepeaterItems в элемент управления DataRepeater (служит для целей списка воспроизведения) из события DataGridView CellMouseDoubleClick.
Загружает звук видео на дополнительном проигрывателе (превью) с каждым событием CellMouseClick.
Кнопка проигрывателя загружает и воспроизводит видео на экземпляре видеопроигрывателя, обновляет некоторые метки, добавляет DataRepeaterItem во вторичный DataRepeater (выполняет роль истории списка воспроизведения) и удаляет текущий DataRepeaterItem, тот, который в данный момент воспроизводится, элемент управления DataRepeater списка воспроизведения.
Есть еще пара кнопок, удаляющих все элементы DataRepeaterItems и перемещающих элементы вверх и вниз по списку.
Позже будет добавлено что-то вроде функции автоматического воспроизведения, заполнив элемент управления DataRepeater несколькими элементами на основе некоторых критериев. (24/7 игрок)
Почему вы, ребята, думаете? Безопасно ли использовать BackgroundWorker или лучше взглянуть на другие классы Threading?