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

Как сделать "Старт", "Пауза", Стоп"? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ ребус http://www.cyberforum.ru/cpp-beginners/thread746515.html
# include <iostream> # include <stdio.h> # include <conio.h> # include <math.h> using namespace std; int main() {int d=0,r=0,u=0,g=0,s0,s1,sum; cout <<"Rebus"; do { * do { * * * if(r==d) continue; do...
C++ Как правильно перегружать унарный минус? Дайте правильный прототип перегрузки унарного минуса. http://www.cyberforum.ru/cpp-beginners/thread746508.html
Деление длинного на длинное C++
#ifndef INTEGERLONGS_HPP_INCLUDED #define INTEGERLONGS_HPP_INCLUDED //================================================================================================= namespace Longs { class...
C++ Как переделать эту прогу в шаблон классов "Двусвязный список" произвольных элементов
#include <iostream.h> #include <stdlib.h>2 #include <conio.h> using namespace std; struct Element { public: double data; //сами данные
C++ Контейнеры STL и виды деревьев http://www.cyberforum.ru/cpp-beginners/thread746500.html
подскажите, или покажите где есть эта информация например я знаю, что контейнеры map и set реализованы через красно-черное дерево через "какие" деревья\другие структуры данных реализованы остальные...
C++ простые числа от 1 до 10000 Написать программу, которая выводит на экран все простые числа в диапазоне от 1 до 10000 и находит их количество. подробнее

Показать сообщение отдельно
kravam
быдлокодер
1700 / 887 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
06.01.2013, 22:57
Цитата Сообщение от Avazart Посмотреть сообщение
Ёу ... где в коде обещенная синхронизация с окном ?
базара нет, если я где-то сказал, что будет синхронизация с потоком окна- покажи мне это. В любом случае я сказал это (если сказал)- зря. Потому, что синхронизации с использованием в ЧАСТНОСТИ средств синхронизации в этой задачи не надо. И её у меня нет. Всё просто, тыкается на кнопку- поток запускается. Тыкается на другую- останавливается. Оконный поток и вспомогательный не имеют разделяемых ресурсов. Были бы- была бы синхронизация несомненно.
Ну то есть грубо говоря- потоки работают синхронно без специальных средств синхронизации. Ибо отношение друг у другу имеют небольшое, прямо скажем- один запускается выключается из другого. Всё на этом.

Цитата Сообщение от Avazart Посмотреть сообщение
Я говорил про написанный код руками ... ( класс наследник от TThread создается автоматически средой ) я лишь добавил пару поле и свой расширенный конструктор и собственно тело потока...
И при чем не было необходимости что-то вносить в код окна для синхронизации...
ну то на то и вышло. У тебя нет синхронизации и у меня нет. Но у меня-то нет осмысленно, а у тебя потому, что билдер не написал синхронизацию.
Впрочем прикола ради- ты бы показал, что ли, что ты писал руками. Может заценю в натуре брошу всё и перейду на билдер.

Цитата Сообщение от Avazart Посмотреть сообщение
С++ и CLR это изврат как по мне, жаль не обратил на это пост внимание ( может бы просто дальше не спорил бы)
ну вот видишь

Цитата Сообщение от Avazart Посмотреть сообщение
Все бы хорошо если бы нужно было SetWindowText(), а не GDI - ф-ции которые нуждаются в синхронизации как я писал выше...
Вот когда будут GDI-функции, тогда и будем разоваривать. И синхронизация будет и всё на свете. Я решал задачу про обедающих философов и накропал её графическое решение, вот уж где есть разгуляться синхронизации.
А щас ты уж поверь на слово, что она в pthread есть.

Цитата Сообщение от Avazart Посмотреть сообщение
И то что товарисЧ писал про то что поток плохо прибивать снаружи - думаю правда
( хотя не уверен в работе pthread, но думаю он вызывает TerminatedThread() что плохо )
да он сказал не подумав, а ты повторяешь.

В pthread для корректного завершения потока предусмотрено:
асинхронное аннулирование- ну это немедленно (то есть не корректное, а так себе)
отсроченное- в потоке, который надо аннулировать, программистом определяются места в коде, где можно сделать аннулирование. Это ты уж сам определяй- ага, аннулировать можно только в этой точке.

Наконец, если аннулирование асинхронное, то предусмотрена функция типа деструктора класса, которая перед убиением потока совершает нужные действия. У меня в коде вот она:
C++
1
2
 pthread_cleanup_push (&routine, arg); 
 pthread_cleanup_pop (false);
Вызывается когда убиваем поток

Чё ещё придумать для безопасного убиения потока извне, я хз.
Наконец, внеси ясность в вопрос- чё, в билдере потоки что ли извне не убиваются?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru