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

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

Войти
Регистрация
Восстановить пароль
 
Gus
24 / 35 / 2
Регистрация: 17.02.2009
Сообщений: 364
#1

не работает поток thread (функция работает без потока!) и 1 оффтоп - C++

23.12.2012, 14:12. Просмотров 655. Ответов 0
Метки нет (Все метки)

Доброго времени суток. Как то я запиливал thread функцию, с учетом того что у меня будет массив указателей на класс thread. почему то, функцию указатель которой я передавал в конструктор потока работала не вне основного потока как ожидалось, а работала так же последовательно, как и был бы как простой вызов т.е выполняется тело функции, и после возвращения аргумента выполнение программы продолжалось.
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
35
36
37
38
39
40
41
Класс потока, который должен содержать все необходимые данные о потоке (для оперативного использования)
#ifndef CHEB_THREAD_H_INCLUDED
#define CHEB_THREAD_H_INCLUDED
#include <thread>
 
class cheb_thread
{
public:
int thID; //Ид потока.
char name_thread[25];
void *func;
std::thread *c_thread; //переменная
bool thread_active; //Логическая переменная, активен ли поток?
int start_thread();
int thread_destroy();
int thread_activate();
};
 
#endif // CHEB_THREAD_H_INCLUDED
 
описание функции start_thread 
#include <iostream>
#include <thread>
#include "cheb_thread.h"
using namespace std;
int cheb_thread::start_thread()
{
    void(*f)()=(void(*)())func;
    cout <<"IT IS RUN!"<<endl;
    c_thread=new std::thread(f);
    c_thread->join();
}
 
Определение класса cheb_thread в головном классе программы MainClass 
cheb_thread *x_thread;
 
Инициализация работы класса cheb_thread
   ch21->x_thread=new cheb_thread; //thread(&msg_listen);
    ch21->x_thread->start_thread();
    ch21->x_thread->func=(void *)&msg_listen;
данный пример выдает core dumped, хотя... память выделил для каждого из класса.
еще один вопрос (оффтоп)
При обьявлении класса в классе иногда возникает ошибка такая как...
C++
1
/cheb21client/main.h|27|ошибка: «TEST» не является именем типа|
хотя
C++
1
2
3
class TEST{
public:
};
Благодарю за помощь, и любые подсказки.

Добавлено через 2 часа 45 минут
up!!!

Добавлено через 14 часов 3 минуты
up!!!

Добавлено через 2 часа 45 минут
Fixed... Но к сожалению, функция не входит в поток, а выполняется, после чего только управление возвращается в главную функцию
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2012, 14:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос не работает поток thread (функция работает без потока!) и 1 оффтоп (C++):

Thread! не работает основной поток - C++
Доброе время суток! код: #include &lt;iostream&gt; #include &lt;thread&gt; #include &lt;vector&gt; #include &lt;chrono&gt; #include &lt;unistd.h&gt; ...

Функция cin.get(array, 80) работает в одной программе, но не работает в другой - C++
Добрый день. Я что то совсем запутался, одна и та же функция в одной программе работает, а в другой нет. В этой программе...

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

Поток не работает (завершение 0x0) - C++
HANDLE hThread = NULL; // DlgProc() hThread = CreateThread(NULL, 0, downloadThread, NULL, 0, NULL); ...

Поток ввода cin работает сам по себе - C++
Привет :) Написал программу, забыл поставить после условия строку для ввода символов cin. Но он работает и так без меня. Т.е. я ввожу...

Не корректно работает вывод из потока stringstream - C++
Здравствуйте форумчане, не корректно работает ввод из потока. Не знаю в чем проблема. stringstream InStream; //создаем поток char...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2012, 14:12
Привет! Вот еще темы с ответами:

C++ 11 передача ссылки в поток thread - C++
Доброго времени суток, возникла такая ситуация. Использую я QT Creator с компилятором MinGW32 Есть у меня статический метод который я...

STL. Не работает вывод через << в поток когда использую итераторы :( - C++
Вроде бы ничего сложного, но почему-то работать не хочет. Никак не могу понять почему ( Ругается, когда пишу void main() { ...

Std::thread приостановка потока - C++
Есть прога в C++ Builder. Три функции описаные внизу запускаются в трех разных потоках. Первый поток генерирует данные для для двух других,...

Присоединение потока std::thread - C++
Есть некая функция: int arr(){ do_something(); std::thread th1({ func1(); func2(); func3();}); th1.join() do_something2(); ...


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

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

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