|
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 57
|
|||||||||||
Backgroundworker.IsBusy всегда true08.06.2015, 00:07. Показов 3337. Ответов 17
Метки нет (Все метки)
В общем, есть метод, который должен делать дела, ждать секунду и продолжать делать дела.
В нем я вызываю BackgroundWorker, в котором жду секунду, ВРОДЕ КАК завершаю работу потока и выхожу дальше. Выбрал самый наибанальнейший вариант, потому что пробовал по-разному - не получалось. Код:
Тыкните ошибку, пожалуйста:С
0
|
|||||||||||
| 08.06.2015, 00:07 | |
|
Ответы с готовыми решениями:
17
BackgroundWorker BackgroundWorker |
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|||||||||||
| 08.06.2015, 01:48 | |||||||||||
|
Что-то я не пойму в чем проблема.. вы хотите просто подождать, для этого используете BackgroundWorker? Если так-у него есть событие RunWorkerCompleted, в нем и делайте все то, что надо делать по завершению. Поток сам нормально завершается, если уж надо его прервать, то:
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 57
|
||||||||||||||||
| 08.06.2015, 02:05 [ТС] | ||||||||||||||||
|
Если я правильно понимаю,
Ну да ладно. Я попробовал сделать так, как я вас понял: убрал вообще все из DoWork, а RunWorkerCompleted вот
Попробовал добавить после запуска фонового потока цикл
Добавлено через 1 минуту Смысл всего именно в том, чтобы после каждой итерации форича ждать секунду и продолжать работу. Добавлено через 3 минуты Прочел: DoWorkEventArgs.Cancel не вызывает остановку, а только говорит, что нет смысла обращаться к результатам работы потока CancelAsync - зажигает свойство CancelationPending, изменение которого нужно обработать. Но так как я знаю точно, что я закрываю сразу после паузы поток, не вижу смысла использовать его. И вообще я уже ничерта не понимаю.
0
|
||||||||||||||||
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|||||||
| 08.06.2015, 02:11 | |||||||
0
|
|||||||
|
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 57
|
|
| 08.06.2015, 02:28 [ТС] | |
|
То есть мне нужно весь код, который я выполняю в фориче запихать в обработку Completed'a?
Добавлено через 9 минут Я всего лишь хотел заставить программу ждать одну секунду, блин. Ладно, попробую пошаманить. Спасибо:3
0
|
|
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|||
| 08.06.2015, 02:34 | |||
0
|
|||
|
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 57
|
||||||
| 08.06.2015, 02:41 [ТС] | ||||||
Фоновый поток не успевает видимо выполниться, и я получаю "Этот компонент BackgroundWorker занят и не может одновременно выполнять несколько задач" Не успел прочесть про то, что должно быть в DoWork, сейчас переделать попробую. Но я не понимаю, что тогда должно быть в Completed. Добавлено через 4 минуты В любом случае, Completed не зажигается.
0
|
||||||
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
||||||
| 08.06.2015, 02:46 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 57
|
|
| 08.06.2015, 02:48 [ТС] | |
|
То есть я создаю поток с анимацией и уже внутри него создаю фоновый поток с ожиданием?
0
|
|
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|||
| 08.06.2015, 02:56 | |||
Соответственно bw.CancelAsync(); в моем коде элементарно выбрасывал исключение.Добавлено через 7 минут
0
|
|||
|
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 57
|
|
| 08.06.2015, 02:59 [ТС] | |
|
Не, я просто сразу учел то, что вы сказали, что анимацию в поток надо бы запихать.
Но я создал этот самый поток, а где объявлять-то фоновый поток, получается?
0
|
|
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
||||||
| 08.06.2015, 03:06 | ||||||
|
Ну первое, что мне пришло бы в голову при виде такой задачи, это весь метод Animate() запустить через поток типа Thread, а форму обновлять как-то так:
0
|
||||||
|
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 57
|
|
| 08.06.2015, 03:09 [ТС] | |
|
Спасибо большое, начну пробовать тогда:3
0
|
|
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
| 08.06.2015, 03:14 | |
|
с Solver и _desk надо только было бы определиться, их не видно чтобы точно сказать как именно(
Добавлено через 1 минуту Скиньте проект, гляну
0
|
|
|
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 57
|
|
| 08.06.2015, 03:16 [ТС] | |
|
Да ладно, время отнимать не хочу, итак столько уже потратили
0
|
|
| 08.06.2015, 03:20 | |
|
Не по теме: Это не страшно:)
0
|
|
|
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 1
|
||||||
| 11.11.2015, 10:29 | ||||||
|
Если я правильно понял задачу (перезапуск воркера в цикле), то чтобы он не входил в ступор (а он всегда будет занят если поставить проверку While(!IsBusy){}) нужно добавить в этот цикл Application.DoEvents();:
...а может, еще кому понадобится (я 3 дня искал решение).
0
|
||||||
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
| 11.11.2015, 12:11 | |
|
А зачем, если не секрет, нужна такая конструкция?
0
|
|
| 11.11.2015, 12:11 | |
|
Помогаю со студенческими работами здесь
18
использование backgroundworker 2 BackgroundWorker параллельно backgroundWorker и формы... Проблемы с BackgroundWorker Таймер в Backgroundworker Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|