Поиск:

Ответ в темуСоздание новой темы Создание опроса
> класс потока, производный от CThread 
:(
    Опции темы
deniska
Дата 13.1.2006, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 398
Регистрация: 1.7.2005
Где: Троицк

Репутация: 1
Всего: 0



ПРоблема такая:
нужна создать класс производный от CThread допустим СMyThread
у CThread есть метод Create у которого есть параметр указатель на функцию, которую поток должен выполнить.
в этот параметр надо передать указатель на метод, описанный в СMyThread
например метод типа UINT Execute (PVOID) пытался по всякому ну никак smile
PM MAIL ICQ   Вверх
xTr1m
Дата 13.1.2006, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 692
Регистрация: 9.2.2005
Где: Москва

Репутация: нет
Всего: 1



Простой способ создания рабочего потока через функцию AfxBeginThread (Execute, pParam)
Делаешь так :
1) Объявляешь в переменную потока в главном окне, и функцию Execute
Код

class CMyDialog : public CDialog 
{
public : 
static UINT Execute(PVOID pParam);
....
private :
CThread *myThread;
...
}                                              


2) Допустим, что поток начинается при нажатии кнопки. Делаем так
Код

void CMyDialog::BtnStartClick()
{
myThread = AfxBeginThread(Execute, myParam);
}


И все, дальше управление передается функции Execute, которую ты определил
PM MAIL WWW ICQ   Вверх
deniska
Дата 13.1.2006, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 398
Регистрация: 1.7.2005
Где: Троицк

Репутация: 1
Всего: 0



все заработало просто функцию надо было static сделать. спасибо xTr1m smile навел на мысль.
можно закрыть
PM MAIL ICQ   Вверх
Dreamer_0x01
Дата 13.1.2006, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 12



Поток-то для чего нужен? Если просто выполнять какие-то долгие служебные действий, то действительно, нужно делать так, как сказал xTr1m, но в этом случае тебе и класс ,производный от CThread, создавать не надо.

Если же ты хочешь использовать механизм, характерный для интерфейсного потока (например, посылка потоку сообщений и т.п), а большую часть времени поток будет простаивать - вот тогда тебе действительно нужно создавать класс, производный от CWinThread. Если да - могу дать как пример выписки из своей программы, все прекрасно запускается/останавливается.


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
takedo
Дата 19.1.2006, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 1.6.2005

Репутация: нет
Всего: 3



Dreamer_0x01
А можешь мне выслать? Просто очень интересно smile . А больше то интересно для чего тебе понадобился интерфейсный поток, просто я обхожусь десятью рабочими, но вдуг использование интерфейсного как то облегчает жизнь? Пример в Мешкове, Тихомирове какой то натянутый, и непонятно для чего создаются интерфейсные потоки. Вообщем, очень интересно посмотреть! smile


--------------------
я не гольфист - я хоккеист
PM MAIL   Вверх
threef
Дата 19.1.2006, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 27.10.2005
Где: Запорожье

Репутация: 1
Всего: 10



Интерфейсный поток позволяет тебе
1.Действительно параллельно работать в двух разных окнах
2.Использовать один DC на несколько потоков
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0879 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.