Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
26.01.2015, 21:54
|
|||
---|---|---|---|
|
|||
Callback, как послать сигнал основному потоку? |
|||
#18+
Есть основной класс MainPage, в нём объект - экземпляр класса Work, выполняющего всю работу, а в Work - метод Do, в цикле выполняющий всё, что нужно. Проблема в том, что Do вызывает функцию, результат которой обрабатывается callback обработчиком там же, в классе Do. Т.е. рабочий цикл прерывается, делается вызов, из Do выходим по return , т.к. надо дождаться результата. А обработчик callback обрабатывает результат и запускает цикл с того же места, где прервалось. И этих вложенностей может быть несколько. Так вот, проблема в том, что результаты работы хранятся в полях объекта класса Work, и надо вывести их на страницу, как только цикл Do завершится полностью. Со страницы-то мы запускаем первый Do, но он завершается, не до конца отработав, когда мы первый раз вызываем эту грёбаную функцию. Потом, после callback, Do дорабатывает, но страница-то об этом не знает. Как подать ей сигнал? В цикле проверять поля Work? Не по TCP же сообщения кидать? Доступа к элементам страницы нет, выдаётся исключение Invalid cross-thread access. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.01.2015, 22:34
|
|||
---|---|---|---|
|
|||
Callback, как послать сигнал основному потоку? |
|||
#18+
мои глаза........ честно говоря я нихрена не понял только то, что есть поток и надо делать вызовы из потока на обновление. самый просто вариант, это использовать BackgroundWorker, там есть методы для прогресса, результата и т.д. вариант посложнее: таски. для обновления значений в интерфейсе использовать INotifyPropertyChanged Но для начала, Вам надо понять, что такое WPF и почему приёмы WinForms в неприменимы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=21&tablet=1&tid=1440944]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 284ms |
total: | 404ms |
0 / 0 |