![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
batex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 15.5.2010 Репутация: нет Всего: нет |
Добрый день. Есть класс MainClass. Необходимо из одного метода этого класса запустить другой в другом потоке. Метод нельзя делать статиком. Необходимо оставить все вкусности ООП.
Т.е.
Гугл пока что не очень помог. Есть какие нибудь идеи? |
|||
|
||||
saneea |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 13.7.2005 Репутация: 1 Всего: 0 |
Ну на чистом C++ никак такое не сделать. Нужно использовать WinAPI (ну или Qt, boost как обёртки).
|
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
так:
Добавлено @ 13:39 легко. std::list+std::thread+std::bind Это сообщение отредактировал(а) boostcoder - 6.8.2012, 15:12 |
|||
|
||||
EnergoHokum |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 600 Регистрация: 10.11.2006 Где: Россия, Ставропол ь Репутация: нет Всего: 6 |
||||
|
||||
saneea |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 13.7.2005 Репутация: 1 Всего: 0 |
спасибо, буду знать, что новый стандарт C++ знает, что такое потоки! ![]() |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
не очень понял, зачем в данном случае нужен list ![]() Вот самое простое, что можно сделать для задачи ТС
http://liveworkspace.org/code/8bdc1ded8c79...a0694e20a8375b7 Кста, тут и bind не потребовался -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
а есть гарантия что выполнение предыдущего метода завершится раньше чем ты решишь выполнить еще один? |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
почему бы им не работать параллельно? последовательным должен быть доступ к членам класса, для этого есть блокировки, но семантику метода определяет разработчик. (хотя по мне лучше вместо обеспечения реентерабельности использовать разные объекты, а синхронизацию возложить на специальный объект. так проще и понятней. но это значит - никаких параллельных запусков функции-члена из самого объекта) |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
в каком кол-ве? почему именно в таком? чем ограничивается? интеллектуальный пул? есть ли вообще в этом смысл? |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
это вопросы к разработчику класса ![]() хотя абстрактную сферическую задачу сформулировать могу, например - рассылка спама. упомянутая функция берет из базы адрес, куда еще не было рассылки, шлет письмо и обновляет базу. цель - разослать письма всем адресатам из базы. допустим в данных класса только информация о соединении к базе и сам запрос, значит данные класса не модифицируются, так что даже блокировок не надо (это задача базы). вот эту функцию и можно параллелить Добавлено через 46 секунд повторюсь, это не мой метод, просто модель ответа на конкретный вопрос)))) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |