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

Visual C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
artstalker
37 / 32 / 2
Регистрация: 23.01.2009
Сообщений: 141
#1

Как создать дополнительный поток? - Visual C++

03.05.2009, 19:43. Просмотров 1561. Ответов 5
Метки нет (Все метки)

сабж. пробовал создавать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void Thread( void* pParams )
  { int i, num = 0;
  
    while ( 1 )
    { 
        Sleep(1000);
       for ( i = 0; i < 5; i++ ) a[ i ] = num;
       num++;
       cout<<i<<" "<<endl;
    }
  }
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    
    _beginthread( Thread, 0, 0 );
        return0;
}
Всё работает. Но мне нужно запустить метод класса в дополнительном потоке из другого метода этого класса. Такой способ перестаёт работать (
C++
1
2
3
4
5
6
7
8
9
10
11
сlass Machine{
void Heating(void* pParams)
{
...
}
void OnTurnOn()
{
_beginthread( Thread, 0, 0 );
}
...
}
Вот такая ошибка:
error C3867: 'Machine::Heating': function call missing argument list; use '&Machine::Heating' to create a pointer to member
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2009, 19:43
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как создать дополнительный поток? (Visual C++):

Как в VS 2008 создать поток? - Visual C++
Здравствуйте! IDE - Visual Studio 2008 C++ OS - Windows XP Я в С++ новичёк, вот разбираюсь с потоками. В общем &quot;концепция&quot;...

Как создать поток (Thread) в с++ mfc? - Visual C++
Здравствуйте!) Не могу ни как понять, как создать поток в с++ mfc? В c# и с++ делал потоки, но в mfc как-то по другому они чтоль...

Как создать виртуальный поток и переопределить оператор <<? - C++
Виртуальный то есть имеется ввиду не файловый и не строковый и не консольный. Впрочем, создание сего не противоречит синтаксису. Вот,...

Ошибка при попытке создать поток - Visual C++
Имеется функция void wait(){ int waitt = (rand() % 3900 + 100); Thread::Sleep(waitt); } при попытке вызвать ее в отдельном...

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

Функция класса, как отдельный поток - Visual C++
когда у всех возникает необходимость работать с нитями (threads) в windows, пользуются функцией CreateThread, если подразумевается...

5
Rififi
2363 / 1056 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
03.05.2009, 19:45 #2
функция класса должна быть статической
1
artstalker
37 / 32 / 2
Регистрация: 23.01.2009
Сообщений: 141
03.05.2009, 19:49  [ТС] #3
А можно как-то запустить не статическую функцию в отдельном потоке?
У меня в теле функции меняются не статические члены. Я не могу её сделать статической
0
Rififi
2363 / 1056 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
03.05.2009, 19:51 #4
Здесь:
http://www.experts-exchange.com/Prog..._20088166.html
0
artstalker
37 / 32 / 2
Регистрация: 23.01.2009
Сообщений: 141
03.05.2009, 20:04  [ТС] #5
А можешь выложить сюда?
А то мне там триальный доступ не дают.=\
0
Rififi
2363 / 1056 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
03.05.2009, 20:10 #6
artstalker,
какое еще триальный доступ? прокручиваешь страницу вниз, и там ответы

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int Ttime::cretimethrd(){
 
HANDLE h;
 
if ((h=(HANDLE)_beginthreadex(NULL,0,::timerthrd,this,0,0))<=0) {
  printf("timethread:Unable to create thread.\n");
  return(-1);
} else {
  CloseHandle(h);
}
return(0);
}
 
and put the definition of the thread proc:
 
unsigned timerthrd(void *obj){
  TTime* tt = static_cast<TTime*>(obj);
  return tt->timerthrd(0);
}
первоисточник ссылок:
Гоогле => "_beginthreadex class member"
0
03.05.2009, 20:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2009, 20:10
Привет! Вот еще темы с ответами:

Текстовый поток как аргумент функции - Visual C++
Здравствуйте! :curtsy: Возникла необходимость обработать файл *.txt, внутри которого информация записана с определённым оформлением...

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

Как узнать, что поток закончился (библиотека pthread)? - C++
Друзья! Есть ли какая-нибудь pthread-функция, которая вызывается в основном потоке X и показывает- да, созданный ранее поток Y закончился? ...

[Поток] Один вход, два выхода [Как сделать?] - C++
Речь об STL-ных потоках. Нужно делать report в файл и на консоль (а может, только на один). Если я заведу поток rep, как мне сделать,...


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

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

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