Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
#1

Можно ли создать поток для нестатического метода класса? - C++

23.08.2012, 16:12. Просмотров 399. Ответов 1
Метки нет (Все метки)

Можно ли создать поток для не статик метода класса?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <windows.h>
#include <stdio.h>
 
class MYCLASS
{
private :
    int num;
public :
    MYCLASS() : num(0) {}
    DWORD CALLBACK draw(LPVOID);
};
 
DWORD CALLBACK MYCLASS::draw(LPVOID lParam)
{
    for (int i=0; i<100; ++i)
        printf("%d ", num);
    return 0;
}
 
DWORD CALLBACK draw(LPVOID lParam)
{
    int num = 23;
    for (int i=0; i<100; ++i)
        printf("%d ", num);
    return 0;
}
 
void main()
{
    MYCLASS c;
    //HANDLE hThread = CreateThread(0, 0, &(MYCLASS::draw), 0, 0, 0);
    HANDLE hThread = CreateThread(0, 0, &draw, 0, 0, 0);
    WaitForSingleObject(hThread, INFINITE);
}
С обычной функцией прокатывает, а вот в классом никак не хочет.
p.s Так же не могу понять, почему третьим параметром можно указывать и &draw, и draw?
p.p.s Сделать функцию-обертку, которая будет вызываться потоком, а потом уже из неё будет вызнавана функция класса - не вариант


p.p.p.s А можно ли сделать то же самое, но со статический методом класса (хотя бы) ? : (
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2012, 16:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Можно ли создать поток для нестатического метода класса? (C++):

Доступ из нестатического метода к статическому члену класса - C++
Привет! Подскажите, пожалуйста, как можно обратиться из нестатического метода класса к статическому члену? Вот мой метод: ...

Можно ли создать поток для выполнения отдельного метода - C++
Здравствуйте! Подскажите как ( и возможно ли это вообще ) создать поток для отдельного метода? Имеется клас окна, в нем метод который...

Передача метода класса в качестве параметра для метода другого класса - C++
Здравствуйте, Передо мной стоит такая задача. Необходимо разработать механизм, который бы мог прервать любую функцию, при этом абсолютна...

Callback нестатического метода - C++
Здравствуйте, &lt;сомневался куда лучше обратиться в этот раздел или WinAPI&gt; Столкнулся с тем что обратный вызов из ОС возможен...

Можно ли в VS2010 автоматически создать заготовку для ф-ии и класса ? - C++
Можно ли в VS2010 автоматически создать заготовку для ф-ии и класса ? Те. я объявляю прототип, потом нажимаю &quot;сочетание клавиш&quot; и...

Использование перегруженного оператора ввода/вывода в поток базового класса для объекта производного класса - C++
Здравствуйте! Можно ли использовать перегруженный оператор ввода/вывода в поток из базового класса для объекта производного класса, если...

1
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
23.08.2012, 16:18 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
nexen, Только такой вариант и сработает или юзать биндеры. Для std::thread.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <thread>
 
struct threaded
{
   void function() {  std::cout << "Hello" << std::endl; }
};
 
int main()
{
   threaded obj;
   std::thread thr(&threaded::function, obj);
}
Вообщем-то внутри вызывается std::bind.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2012, 16:18
Привет! Вот еще темы с ответами:

Можно ли в DLL создать поток? - C++
Мне необходимо создать DLL, в котором был бы отдельный поток Windows. Однако, как выяснилось, это не так просто как в случае с приложением....

Нужно создать базу данных (создать пустой бинарный файл). Через поток. Поток бинарного файла описать в виде локальной переменной внутри функции. - C++
Совсем не понял эту тему. Нужно создать базу данных (создать пустой бинарный файл). Через поток. Поток бинарного файла описать в виде...

Вызов метода класса из метода другого класса - C++
Помогите школнегу Имеется несколько классов class Com { protected: unsigned char bufrd, bufwr; unsigned char tx_index,...

Разработать шаблон класса для вывода вектора данных в поток - C++
Разработать шаблон соответствующего класса, где поля могут иметь различные типы данных. Предусмотреть наличие в классе указанных методов и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru