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

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

Войти
Регистрация
Восстановить пароль
 
azbest
41 / 41 / 8
Регистрация: 12.03.2013
Сообщений: 148
#1

Создать отдельный управляемый поток для бесконечного процесса - C++

08.07.2014, 21:15. Просмотров 359. Ответов 9
Метки нет (Все метки)

Пишу простую визуализацию броуновского движения в С++ Builder-e рисуя кружочки на имейдже.
Подскажите самый простой пример как запихнуть процесс движения в отдельный поток с реалзацией функции запуска/паузы движения из приложения.

(сразу скажу что работу с потоками понимаю только на уровне идеи)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2014, 21:15     Создать отдельный управляемый поток для бесконечного процесса
Посмотрите здесь:

Создать отдельный стек для функции - C++
необходимо. Мне надо вызывать рекурсивную функцию; при этом происходит переполнение стека, мне бы хотелось бы это контролировать. g++ не...

Перемещение объекта в отдельный поток - C++
Добрый день. В общем задался вопросом, как переместить какой-то объект/указатель на объект в отдельный поток? Пока сталкивался только с...

Можно ли создать поток для нестатического метода класса? - C++
Можно ли создать поток для не статик метода класса? #include <windows.h> #include <stdio.h> class MYCLASS { private : int...

Член класса управляемый не может относиться к типу класса не управляемый - C++
"член класса управляемый не может относиться к типу класса не управляемый" Не могу понять что делать с этой ошибкой и как...

Как создать класс для запуска процесса и отслеживания его дальнейшего состояния - C++
Есть задание: Create class to launch and monitor win32 process. Class constructor accepts command line path and arguments. Class instance...

Не получается создать поток - C++
Здравствуйте. Есть код, создающий поток: #include "stdafx.h" #include <Windows.h> #include <process.h> void inThread(void*...

Создать фаловый поток - C++
#include <stdio.h> #define n 24 void main() { int i,j=0,p,a; for (i=0;i<n;i++) scanf("%d",&a); for (i=0;i<n;i++) ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
08.07.2014, 21:24     Создать отдельный управляемый поток для бесконечного процесса #2
Цитата Сообщение от azbest Посмотреть сообщение
(сразу скажу что работу с потоками понимаю только на уровне идеи)
Тогда лучше по таймеру.
SatanaXIII
Супер-модератор
Эксперт С++
5603 / 2637 / 242
Регистрация: 01.11.2011
Сообщений: 6,497
Завершенные тесты: 1
08.07.2014, 21:28     Создать отдельный управляемый поток для бесконечного процесса #3
azbest, в билдере есть свои потоки. Не проще ли использовать их?
azbest
41 / 41 / 8
Регистрация: 12.03.2013
Сообщений: 148
08.07.2014, 21:34  [ТС]     Создать отдельный управляемый поток для бесконечного процесса #4
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
Тогда лучше по таймеру
хотелось бы все же сделать с помощью потоков чтоб разобратся... но если все будет печально вернусь к старому-доброму таймингу

Цитата Сообщение от SatanaXIII Посмотреть сообщение
Не проще ли использовать их?
простите, знал бы как - не задавал бы вопрос.
SatanaXIII
Супер-модератор
Эксперт С++
5603 / 2637 / 242
Регистрация: 01.11.2011
Сообщений: 6,497
Завершенные тесты: 1
08.07.2014, 21:39     Создать отдельный управляемый поток для бесконечного процесса #5
azbest, если хотите, могу переместить тему в раздел по билдеру. Там вам порекомендуют более специфические для борланды вещи.
Но я нисколько не настаиваю - здесь вам могут нарекомендовать большее количество различных вариантов потоков. Для общего развития хорошо, для прикручивания к борланде так себе.

Добавлено через 2 секунды
Цитата Сообщение от azbest Посмотреть сообщение
к старому-доброму таймингу
Позвольте полюбопытствовать - это речь идет про компонент Timer?
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
08.07.2014, 21:40     Создать отдельный управляемый поток для бесконечного процесса #6
Цитата Сообщение от azbest Посмотреть сообщение
хотелось бы все же сделать с помощью потоков чтоб разобратся...
Из потока нельзя напрямую изменять GUI, чисто для отрисовки поток смысла не имеет.
azbest
41 / 41 / 8
Регистрация: 12.03.2013
Сообщений: 148
08.07.2014, 21:47  [ТС]     Создать отдельный управляемый поток для бесконечного процесса #7
SatanaXIII, спасибо за предложение. Если можно то оставьте тему сдесь.

Цитата Сообщение от SatanaXIII Посмотреть сообщение
это речь идет про компонент Timer?
да

Добавлено через 6 минут
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
чисто для отрисовки
если использовать таймер, коректна ли будет работа если я реализую функции добавления/удаления частиц рантайм? Или если изменять свойства частич (масса, скорость, размер).
SatanaXIII
Супер-модератор
Эксперт С++
5603 / 2637 / 242
Регистрация: 01.11.2011
Сообщений: 6,497
Завершенные тесты: 1
08.07.2014, 21:54     Создать отдельный управляемый поток для бесконечного процесса #8
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
чисто для отрисовки поток смысла не имеет
Обсчет-то движения можно вынести в отдельный поток, а в основном только перерисовывать.
Цитата Сообщение от azbest Посмотреть сообщение
если использовать таймер
Таймер это тот же поток.
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
08.07.2014, 21:55     Создать отдельный управляемый поток для бесконечного процесса #9
Цитата Сообщение от azbest Посмотреть сообщение
если использовать таймер, коректна ли будет работа если я реализую функции добавления/удаления частиц рантайм? Или если изменять свойства частич (масса, скорость, размер).
Сложно сказать, без подробностей. Таймер обрабатывается в основном потоке приложения, с отрисовкой проблем быть не должно. Если расчеты требуют больших ресурсов, возможно имеет смысл их сделать потоком, а по таймеру только отрисовку, в этом случае нужно будет делать синхронизацию доступа к данным.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2014, 22:02     Создать отдельный управляемый поток для бесконечного процесса
Еще ссылки по теме:

Как создать поток в Linux? - C++
Программеры! Подскажите, пожалуйста, как создавать потоки в Linux. В Windows есть CreateThread(), а в Linux как? Можно спросить иначе:...

Создать свой поток данных - C++
Не могу понять, возможно ли как то создать свой поток данных? Знаю есть файловые потоки, cin cout cerr, а как быть если мне нужен поток...

Можно ли в DLL создать поток? - C++
Мне необходимо создать DLL, в котором был бы отдельный поток Windows. Однако, как выяснилось, это не так просто как в случае с приложением....

Не могу создать файл в поток ofstream - C++
Всех с наступившем НГ!) Не могу открыть/создать файл в поток. fstream somf; somf.open("c:\\users\\admin\\documents\\visual...

Создать поток в конструкторе с ссылкой на этот же объект - C++
Собственно нужно что бы 2 потока работало с 1 объектом, первый гонял функцию в цикле, а 2-й ( основной) был управлением... Вот код :) ...


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

Или воспользуйтесь поиском по форуму:
azbest
41 / 41 / 8
Регистрация: 12.03.2013
Сообщений: 148
08.07.2014, 22:02  [ТС]     Создать отдельный управляемый поток для бесконечного процесса #10
Расчеты не должны быть трудоемкими, использую для реализации очередь с приоритетами, так что сложность алгоритма выйдет почти линейная (~2N, N - количество точек).

Пока убедили использовать таймер....
но если не получиться i'll be back
Yandex
Объявления
08.07.2014, 22:02     Создать отдельный управляемый поток для бесконечного процесса
Ответ Создать тему
Опции темы

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