![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Torgovec |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
Мне необходимо запускать метод CheckConnection класса Pinger ,и ловить из него значение, но при этом программа не должна ожидать окончания работы этого метода т.к. внутри него используется рекурсия, т.е. без использования треда метод вешает всю программу.
Вот чем я попытался выйти из положения:
Сразу оговорюсь, что код приведенный выше я подсмотрел в гугле, когда искал способ возвращать значения из треда. Я представлял себе, что это должно работать примерно так: Сохраняем в делегате ссылку на функцию, BeginInvoke запускает Threadс этой функцией, а EndInvoke проверяет, если Thread отработал и вернул значение сохраняет его в nResult . На деле выходит следующее: BeginInvoke запускает функцию, а сразу после него EndInvoke запускает эту же функцию, в итоге в моем случае возвращаемое значение плывет на единицу. Прошу помочь разобраться. |
|||
|
||||
Torgovec |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
Вроде немного разобрался, заменил на след. конструкцию:
Теперь функция возвращает правильно значение, только заметил следующую вещь - независимо от того что создается поток, программа притормаживает на этом месте,т.е. когда запускается cc.BeginInvoke(null,null), форма приложения на любые события не реагирует, до EndInvoke :( Это сообщение отредактировал(а) Torgovec - 12.9.2008, 22:13 |
|||
|
||||
Torgovec |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
Спасибо, я во всем разобрался
![]() Это сообщение отредактировал(а) Torgovec - 12.9.2008, 22:41 |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |