![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| IBS |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 29.7.2008 Где: Белоруссия Репутация: нет Всего: 6 |
Приветствую!
Вот что получается: Елементы управления windows forms выполняются в одном потоке. Мне же необходимо создать отдельный поток( в моем случае для рассылки писем по многим адресам). При этом было бы неплохо как-то наблюдать количесво отправленных писем в форме. Но обращаться к элементам формы из нового потока нельзя... Нашел, что для этого вроде используют Dispatcher, пытаюсь делать так:
Внутри метода Sending есть такие строки:
Выходит, что метод запускается в отдельном потоке и даже работает, но при этом блокируется сама форма. Т.е. толку от этого потока ноль. Пытался добавить перед ним Dispatcher.Run(), хотя это уже больше от отчаяния =) Что здесь можно сделать?? |
||||
|
|||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 1 Всего: 32 |
-------------------- ![]() |
|||
|
||||
| IBS |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 29.7.2008 Где: Белоруссия Репутация: нет Всего: 6 |
Cheloveck, Большое спасибо за статью! Все получилось! Сам раз десять мимо нее проходил и не разу до конца не дочитывал, а там оказывается все что надо =))
|
|||
|
||||
| IBS |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 29.7.2008 Где: Белоруссия Репутация: нет Всего: 6 |
Вылезла другая проблема:
Внутри нового потока есть блоки try catch. Если операция проходит, то, через метод Invoke, в label формы записываем, что она прошла, если нет то возникает исключение и передается управление блоку Catch в котором происходит запись в label формы который отображает неудачные операции. Проблема в том, что при возникновении исключения в первый раз все происходит как и ожидалось: происходит запись в label(пишу туда число неудачных на данный момент операций), во второй и все последующие этого не происходит. Хотя когда я пытаюсь пройти по F11 все, на первый взгляд, идет: заходим в cath доходим до label.Invoke(...) и переходим на новую итерацию цикла. Может тут какой-то наворот при обработке исключений при использовании Invoke, но я по этой теме ничего не нашел... Это сообщение отредактировал(а) IBS - 6.4.2012, 12:12 |
|||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 1 Всего: 32 |
Нет никаких наворотов. Проверяй свой код. Это сообщение отредактировал(а) Cheloveck - 6.4.2012, 19:35 -------------------- ![]() |
|||
|
||||
| IBS |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 29.7.2008 Где: Белоруссия Репутация: нет Всего: 6 |
Cheloveck, Опять вы были правы!! )
Оказалось, похожие методы копировал и натупил! copyPast - зло (паттерн) |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |