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

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

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

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

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

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

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

Нужно создать базу данных (создать пустой бинарный файл). Через поток. Поток бинарного файла описать в виде локальной переменной внутри функции. - C++
Совсем не понял эту тему. Нужно создать базу данных (создать пустой бинарный файл). Через поток. Поток бинарного файла описать в виде...

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

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

Можно ли создать поток для выполнения отдельного метода - C++
Здравствуйте! Подскажите как ( и возможно ли это вообще ) создать поток для отдельного метода? Имеется клас окна, в нем метод который...

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

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

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

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

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

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

Добавлено через 6 минут
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
чисто для отрисовки
если использовать таймер, коректна ли будет работа если я реализую функции добавления/удаления частиц рантайм? Или если изменять свойства частич (масса, скорость, размер).
0
SatanaXIII
Супер-модератор
Эксперт С++
5640 / 2675 / 252
Регистрация: 01.11.2011
Сообщений: 6,572
Завершенные тесты: 1
08.07.2014, 21:54 #8
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
чисто для отрисовки поток смысла не имеет
Обсчет-то движения можно вынести в отдельный поток, а в основном только перерисовывать.
Цитата Сообщение от azbest Посмотреть сообщение
если использовать таймер
Таймер это тот же поток.
0
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
08.07.2014, 21:55 #9
Цитата Сообщение от azbest Посмотреть сообщение
если использовать таймер, коректна ли будет работа если я реализую функции добавления/удаления частиц рантайм? Или если изменять свойства частич (масса, скорость, размер).
Сложно сказать, без подробностей. Таймер обрабатывается в основном потоке приложения, с отрисовкой проблем быть не должно. Если расчеты требуют больших ресурсов, возможно имеет смысл их сделать потоком, а по таймеру только отрисовку, в этом случае нужно будет делать синхронизацию доступа к данным.
0
azbest
41 / 41 / 8
Регистрация: 12.03.2013
Сообщений: 148
08.07.2014, 22:02  [ТС] #10
Расчеты не должны быть трудоемкими, использую для реализации очередь с приоритетами, так что сложность алгоритма выйдет почти линейная (~2N, N - количество точек).

Пока убедили использовать таймер....
но если не получиться i'll be back
0
08.07.2014, 22:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2014, 22:02
Привет! Вот еще темы с ответами:

Как создать класс для запуска процесса и отслеживания его дальнейшего состояния - 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++) ...

Как создать отдельный поток для функции? - C#
Подскажите пожалуйста. Как создать отдельный поток для функции private void function (string P,string Q){ }? Пишу так, Tread myTread =new...


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

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

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