![]() |
|
Модераторы: diadiavova, gambit |
![]()
|
|
| noob4ever |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.7.2009 Репутация: нет Всего: нет |
вопрос: почему во время запуска фонового процесса форму не могу двигать и кнопки нажимать?? ведь запускается в отдельном процессе, кстати с копированием файла все выходит, а тут нет, форма не реагирует до завершения процесса. я начинаю разбираться и постоянно натыкаюсь на какой нибудь камешек
Это сообщение отредактировал(а) noob4ever - 19.7.2009, 23:40 |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Дело в том, что из метода, который по идее должен вызываться асинхронно ты обращаешься к самому бэкграундвокеру, а он создан в том же потоке, что и форма, а стало быть и операция выполняется в нём же. Чтобы этого избежать надо обратиться к методу Invoke формы, для вызова метода в её потоке
Вот так всё сработает Это сообщение отредактировал(а) diadiavova - 20.7.2009, 01:36 -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| noob4ever |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.7.2009 Репутация: нет Всего: нет |
форма тормозит жутко, но управление не пропадает
кстате странное дело, время работы : To 100000
|
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Ну так через посредника ведь всё делается, да ещё и в разных потоках, там есть свои сложности.
Можно попробовать реализовать по-другому. Не вызывать из другого потока метод ReportProgress, а вместо этого скидывать данные в переменную, а из основного потока считывать их по таймеру. Другой вариант не вызывать метод так часто, а только тогда, когда значение прогресса реально меняется
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| noob4ever |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.7.2009 Репутация: нет Всего: нет |
ясно, разобрался кажется. выходит прогресс из другова потока поэтому если часто отправлять ReportProgress, выходит так долго. для проверки поставил 10 миллионов и за 1 секунду выполнилось если проверять остаток. Это сообщение отредактировал(а) noob4ever - 20.7.2009, 14:10 |
||||
|
|||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Не проверка, просто так ты вызываешь метод в 100 раз реже. На этом и экономишь.
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
![]()
|
| Правила форума VB .NET | |
|
|
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |