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

Не получается создать поток - C++

Восстановить пароль Регистрация
 
MaxxximyM
18 / 2 / 1
Регистрация: 31.08.2011
Сообщений: 132
12.08.2012, 22:48     Не получается создать поток #1
Здравствуйте. Есть код, создающий поток:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include <Windows.h>
#include <process.h>
 
void inThread(void* pParams);
 
void main()
{ 
_beginthread(inThread, 0, NULL); 
}
 
void inThread(void* pParams){
MessageBox(NULL, "YRA", "MES", MB_OK);
_endthread();
}
Или я дико туплю или Visual Studio. Программа компилится без ошибок, но MessageBox не выводится.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
12.08.2012, 23:00     Не получается создать поток #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <process.h>
#include "windows.h"
 
void myThread(void *pParams) 
{ 
    MessageBoxA(NULL, "YRA", "MES", MB_OK);
    _endthread(); 
} 
 
int main() 
{ 
    _beginthread(myThread, 0, NULL); 
    system("PAUSE");
    return 0;
}
Миниатюры
Не получается создать поток  
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
12.08.2012, 23:13     Не получается создать поток #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <Windows.h>
#include <process.h>
 
void inThread(void* pParams);
 
int main()
{ 
    _beginthread(inThread, 0, NULL); 
    system("pause");
    return 0;
}
 
void inThread(void* pParams)
{
    MessageBoxA(NULL, "YRA", "MES", MB_OK);
    _endthread();
}
Добавлено через 9 минут
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
#include <windows.h>
#include <process.h>
 
unsigned __stdcall ThreadFunc( void * arg) // Функция потока
{
    char ** str = (char**)arg;
    MessageBoxA(0,str[0],str[1],0);
    _endthreadex( 0 );
    return 0;
};
 
int main(int argc, char* argv[])
{
    TCHAR * InitStr1[2] = {L"First thread running!", L"11111"};// строка для первого потока
    TCHAR * InitStr2[2] = {L"Second thread running!",L"22222"};// строка для второго потока
    unsigned uThreadIDs[2];
 
    HANDLE hThreads[2];
    hThreads[0] = (HANDLE)_beginthreadex( NULL, 0, &ThreadFunc, InitStr1, 0,&uThreadIDs[0]);
    hThreads[1] = (HANDLE)_beginthreadex( NULL, 0, &ThreadFunc, InitStr2, 0,&uThreadIDs[1]);
 
    // Ждем, пока потоки не завершат свою работу
    WaitForMultipleObjects(2, hThreads, TRUE, INFINITE ); // Set no time-out
    // Закрываем дескрипторы
    CloseHandle( hThreads[0] );
    CloseHandle( hThreads[1] );
    return 0;
}
MaxxximyM
18 / 2 / 1
Регистрация: 31.08.2011
Сообщений: 132
13.08.2012, 09:00  [ТС]     Не получается создать поток #4
Всё решилось переустановкой Visual'а.

Кстати Infinity3000, не подскажешь код для ожидания завершения ОДНОГО потока?
cossack5
54 / 48 / 1
Регистрация: 02.08.2012
Сообщений: 127
13.08.2012, 13:37     Не получается создать поток #5
Цитата Сообщение от MaxxximyM Посмотреть сообщение
код для ожидания завершения ОДНОГО потока?
WaitForSingleObject(hThreads[0],INFINITE);
Yandex
Объявления
13.08.2012, 13:37     Не получается создать поток
Ответ Создать тему
Опции темы

Текущее время: 15:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru