![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: -2 Всего: 52 |
Есть функция - член класса - как мне её запустить в поток, без привлечения передачи параметров в стат. функцию и без использования глобальных переменных?
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: нет Всего: 92 |
Зависит от используемой потоковой либы. Если сие POSIX-функции, то никак. Если, скажем Boost.Thread
![]() |
|||
|
||||
Orthenner |
|
|||
![]() Любитель ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 22.5.2004 Где: Мытищи Репутация: нет Всего: нет |
для pthreads мне пришлось объявлять функцию-член класса как static. Для С++ лучше юзать boost или тот же QT
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
нет ничего невозможного ![]()
Это сообщение отредактировал(а) MAKCim - 2.3.2007, 16:31 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: нет Всего: 92 |
MAKCim, уж слишком непортируемый код получаем (да и читабельность всё таки страдает). POSIX поддерживают многие компиляторы (даже в полном объёме). А вот подобные игрушки - единицы
![]() |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
с этим никто и не спорит просто нет ничего невозможного (при желании) -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: нет Всего: 92 |
![]() Ну почему? Скажем, заставить господина MAKCim писать на шарпе (по крайней мере официал релиз, так сказать) ![]() |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
это вполне возможно ![]() я ничего, кстати, против .NET и C#-а в частности не имею. Думаю для решения многих не критичных к скорости прикладных задач в Window$ это самый лучший выбор так что если придется их писАть (вот тут уж не дай бог ![]() ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: нет Всего: 92 |
Я взял шарп именно потому, что его главная область:
Учитывая делаем выводы... То есть виновать не шарп как таковой, а его главная область применения. Именно поэтому я подчеркнул, что речь про официал релиз. Всякие Моно (а также до сих пор непонимаемые мною дотгну) в рассмотрение не входят. ![]() |
|||
|
||||
Rickert |
|
|||
![]() Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: -2 Всего: 52 |
Что значит POSIX-функция?
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Ken |
|
|||
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 31.3.2007 Репутация: нет Всего: 4 |
Решается легко, примерно таким образом: Создаешь простой базовый Thread класс. //-------------------------------------- class Thread { public: void start (); protected: virtual void run () = 0; private: pthread_t _thread; static void* doExecute (void* threadObject); }; //-------------------------------------- void Thread::void start () { pthread_create (&_thread, NULL, doExecute, this); pthread_detach (pthread_self ()); } static void* Thread::doExecute (void* threadObject) { Thread* thread = (Thread*) threadObject; thread->run (); return NULL; } //-------------------------------------- Делаешь Thread родителем своего класса который содержит нужный тебе метод и реализуешь метод run (). class MyThreadedClass: public Thread { protected: void run () { // тут вызываешь свой метод } } //-------------------------------------- Создаешь объект и запускаешь поток: MyThreadedClass* thead = new MyThreadedClass (); ... thread->start (); |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
Ken,
имхо, имелось в виду не это -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Ken |
|
|||
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 31.3.2007 Репутация: нет Всего: 4 |
Возможно, но используя класс Thread он уже не будеть думать о статической функции и глобальных переменных для этой задачи, все уже скрыто внутри Thread. А вообще, без использовании статической или глобальной функции невозможно, ибо posixthreads требует этого. |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
все возможно ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |