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

Как передать функцию в Thread()? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создание пользовательского интерфейса http://www.cyberforum.ru/cpp-beginners/thread354576.html
Приветы форумчанам. Вообщем встал вопрос создание графического интерфейса пользователя(GUI если не ошибаюсь) Использую VS2008 До этого писал только консольные программы(С++), ни с какими технологиями и библиотеками незнаком, поэтому прошу совета. Думаю начать изучать MFC, вот такая книжечка в электронном варианте имеется ( Visual C++. Разработка Windows-приложений с помощью MFC и API-функций...
C++ Вычислить значение функции на интервале с определенным шагом Здравствуйте! Помогите пожалуйста разобраться в последней части условия, если возможно, помочь кодом. Задачу прикрепил в сообщение. Вот мои наработки: #include <iostream> #include <math.h> #include <iomanip> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread354575.html
разработка объекта синхронизации C++
нужно создать объект синхронизации с разделяемыми уровнями блокировки: для чтения и для записи. Одновременно блокировка на чтение возможна из нескольких тредов, а на запись - только из одного, при этом чтобы не было читающих потоков. Как это реализовать - понятно. Нужно 2 флага (мьютекса) и один семафор. Алгоритм: при запросе на чтение - ожидаем сброса флага ожидания доступа на запись -...
C++ как задать функции в с++
например в паскале можно вот так procedure (a) procedure= procedure(a+1)+procedure (ф+2) begin input (a,b) procedure (a,b) как так извините если не правильно главное суть. как сделать так же в с++, читал про void но она не возвращает значение.
C++ Задачи http://www.cyberforum.ru/cpp-beginners/thread354538.html
все сюда писать не буду они тут в файле. По возможности кто какие сможет помогите решить. Но это самая сложная Первоначальное напряжение в цепи равно 200 вольт. Известно, что оно меняется через каждую секунду следующим образом: через одну секунду оно уменьшается на М%, а еще через секунду увеличивается на Р%, затем снова уменьшается на М%, потом уменьшается на Р% и т.д. Составьте программу для...
C++ Несколько условий в одном if например в паскале можно if (a>b)and(a<10) в с++ как этосделать? подробнее

Показать сообщение отдельно
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
22.09.2011, 15:57     Как передать функцию в Thread()?
касательно кода: так не получится =). Во первых, если вы объявляете myThread() как приват, то обращаться к нему "из вне" не получится. Почитайте что-нибудь обзорное по этой теме.

во-вторых, смотрите что происходит:
есть процесс - ваша программа. Процесс содержит основной трэд (основной поток процесса). В методе Start_Thread() происходит порождение дополнительного трэда, замечательно. Теперь есть процесс и два трэда - основной и порожденный, они (трэды) работают параллельно. И происходит следующее: в то время как основной трэд конвертирует строку, порожденный начинает выводить эту же строку. Как они отработают, который закончит раньше, что получится в результате - предсказать не возможно. В принципе в данном случае задача не расспараллеливается, ибо сначала нужно ввести, потом обработать, потом вывести. Расспараллелить можно обработку - т.е. заменить реализацию ConvertArrayToAnsi на многопоточную. Например: один поток обрабатывает левую половину строки, второй - правую.
замечание: хорошо бы прочесть что-нибудь о доступе к членам класса. О том в чем разница между процессом и потоком в вин хорошо написано у Рихтера (windows для проффесионалов - в инете есть).
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru