Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C++ Builder > Поток: вернуть результат выполния функции |
Автор: Alca 4.10.2007, 11:52 | ||
Поток: вернуть результат выполнения функции
|
Автор: zkv 4.10.2007, 12:03 |
как это, не может быть MyClass классом, вероятно ты имел ввиду указатель на объект? где он тогда объявлен? По идее в MyNotifyThread нужно передавать указатель на объект класса, который будет потоком обрабатываться. |
Автор: Alca 4.10.2007, 12:08 |
MyClass - указатель на объект |
Автор: Alca 4.10.2007, 12:59 | ||
|
Автор: zkv 4.10.2007, 13:11 | ||
передать парамтры из потока можно примерно так:
про указатель действительно информация не нужна была, я не понял сразу, какого он типа. Добавлено через 1 минуту и 2 секунды где то мог ошибиться, но суть должна быть ясна ![]() |
Автор: Alca 4.10.2007, 13:32 | ||
Всё равно в asResult пусто:
|
Автор: zkv 4.10.2007, 13:36 |
неудивительно, это же локальная переменная. должно в asResult прийти. для чего я делал: |
Автор: Alca 4.10.2007, 13:41 | ||
Сорри отредактировал...
asResult - в паблик секции класса |
Автор: zkv 4.10.2007, 13:47 |
возможно строка затирается на следующих итерациях цикла, возможно на момент вызова метода поток еще не отработал (WaitForSingleObject - делаем?), еще чего-нить... Смотри, ищи... |
Автор: Alca 4.10.2007, 13:55 |
а куда вставить WaitForSingleObject? таки затирается! я присвоил asResult строку "xxxxxxxx", - затёрлась |
Автор: zkv 4.10.2007, 14:01 |
туда, где нужно быть уверенным, что поток отработал. У тебя видимо это обработчик нажатия кнопки. Почитай MSDN по WaitForSingleObject(), там даже пример был вроде. Ну и сделай в своем потоке трассировку значений asResult. В MFC для этого удобен макрос TRACE(), в билдере тоже должно быть что-то. и не забывай про это: ![]() |
Автор: Alca 4.10.2007, 16:16 | ||||
Обошлось без WaitForSingleObject: Так не пашет:
помогло Так пашет:
Спасибо! zkv!!!!!!!!!!! |