![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
eXa |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
H!
Cуда не посылайте http://forum.vingrad.ru/topic-60076.html, обчитался уже=) Как синхронизировать поток с другим потоком понятно, а как синхронизировать поток с главным потоком непонятно, неподскажите? Поток состоит у меня из одной процедуры, главный поток берет значенния 2ух переменных из отдельного потока, эти значения используется в 2ух процедурах главного потока, причём в разных, как сделать синхронизацию? Было бы замечательно, если ещё с примерами кода покажите мне реализацию синхронизации Это сообщение отредактировал(а) eXa - 17.12.2006, 23:52 |
|||
|
||||
Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
используй критические секции...
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
eXa, возможно переменные объявленные как threadvar
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
А сюда можно ? http://forum.vingrad.ru/topic-127140.html -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
ВоВеЦ |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 20.4.2006 Репутация: нет Всего: нет |
alexeis1 объявил, ничё хорошего не вышло из этого, завершилось всё крушением проги. С критическими секциями не всё понятно, я уверен мне очень помог бы пример синхронизации при моих условиях:
Что делают процедуры не важно, с меня + ![]() --------- эт я eXa =) Это сообщение отредактировал(а) ВоВеЦ - 18.12.2006, 18:31 |
|||
|
||||
eXa |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
Насчёт этой темы http://forum.vingrad.ru/topic-127140.html, сделал всё как по предпоследнему посту, но получается следующее
procedure TForm1.TempProc выполняется у меня только олин раз, хотя там стоит цикл for to do. Почему так и как это исправить? Это сообщение отредактировал(а) eXa - 18.12.2006, 20:14 |
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
eXa, Ну могу я тебе показать как решил ту проблемму. Смотри:
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
eXa |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
Sunvas спасибо конешно, но тут ты ничего нового не показал, просто получается не пойми чё, поток каторый нужно запустить привязан к tform1, его можно только синхронизировать, запустить в потоке его у меня не получается. Если есть желанние помочь то просто покажите как синхронизировать с классом tthread в моём случии, ещё раз цитирую навсякий случий
|
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 13 Всего: 158 |
параноидальное ощущение важности и секретности своего кода вкупе с неспособностью объяснить суть проблемы дают предсказуемый результат: пару попыток угадывания с последующим забиванием на топик. "поток", "главный поток", "отдельный поток"...
плохо читал. |
|||
|
||||
eXa |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
Так я имел ввиду не то что эти процедуры нельзя показывать, а просто показать пример в катором, в процедурах произвадились самые элементарные действия ![]()
Прочитать не сложно то, а понять... Месяц назад для меня также были не понятны сами потоки, как ща их синхронизация, ессно вам ща наверно думается чё там сложного то, как мне будет думаться когда увижу вопрос "как реализовать потоки?" Взял, прочитал, накодил. А на самом деле это край для невтыкающих. А потоки я понял мгновенно не после того как сотый раз про них прочитал, а после того как мне показали пример их реализации с моими условиями. Ну вы поняли к чему я ![]() ![]() Это сообщение отредактировал(а) eXa - 19.12.2006, 04:06 |
||||
|
|||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
лично мне после таких постов стало лень PS типа нате плюс только сделайте, имхо это уже в ЦП -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
eXa |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
Спасиб!
|
|||
|
||||
eXa |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
А если надо синхронизировать с функцией главной нити, что делать? Как не пытался, не вяжется и всё. И вообще с синхронизацией этой чудеса творятся, если ставлю значение цикла продедуры главной нити с каторой синхронизирую от 0 до 1 то цикл отдельной нити нормально работает, если ставлю <1 то цикл отдельной нити зацикливается на 0, плюс к этому даже если значение от 0 до 1 то, то цикл нити значение 0 повторяет 2 раза, путаница вообщем какая та. А самое непонятное, в отдельной нити, инкримент не происходит с синхронизацией или без, от значения цикла в отдельной нити по mod. Буд разбираться...
Это сообщение отредактировал(а) eXa - 22.12.2006, 05:43 |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
Если честно , то я ничего не понял ![]() -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
eXa |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
Да вопрос у меня один только. Если надо синхронизировать с функцией главной нити, что делать? А остальное без исходников и не понять. |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
а до этого чем занимались? дык выкладывай -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
eXa |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
У тебя в примере, синхронизируется только процедуры, если попробывать синхронизировать функции, вылезает следующия ошибка: There is no overloaded version of 'Synchronize' that can be called with these arguments
Пожайлуста
если x >1 то цикл C = 0, если x=1 то цикл работает нормально Это сообщение отредактировал(а) eXa - 22.12.2006, 23:04 |
||||||||
|
|||||||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
а зачем ? переделай под процедуру этого кода мало ибо что есть ![]() прицепи весь проект , и скажи что хочешь что б было , тогда можно будет сказать как это сделать -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
eXa |
|
||||||||||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
Если можно было, то переделал, только функцией, подругому никак=(
когда больше x, от 2 до бесконечности
извеняюсь Form1.Send это и есть процедура TForm1.SendSMSki
Это функция, каторая делется на множество подфункций, по отправке и получения ответа сокетов
Почти тоже самое что и sleep, только без всяких зависаний
Это сообщение отредактировал(а) eXa - 22.12.2006, 23:11 |
||||||||||||||||||
|
|||||||||||||||||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
мне все равно не понятно почем при
ведь с зависит от LsMa.Count а х зависит от nms.Text ![]() -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
eXa |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
Мне темболее непонятно, я сказал как есть, nms.text - едит который передаёт значение x, тоесть значение до которого накручивается цикл
Это сообщение отредактировал(а) eXa - 23.12.2006, 04:26 |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
тогда проще может скажешь что хочешь в конце получить? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
ВоВеЦ |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 20.4.2006 Репутация: нет Всего: нет |
Я хочу чтоб цикл в procedure MaName.Execute работал нормально при любом значении x
|
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
Я чета здесь упоминания х вообще не вижу ![]() -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
ВоВеЦ |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 20.4.2006 Репутация: нет Всего: нет |
Если ты читал мои посты то должен понять про чё, x в процедуре TForm1.Send;
|
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
кса одна трабла могет быть
хоть и чтение но могут быть траблы, ибо обращение из потока к данным основного потока(форме) -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
ВоВеЦ |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 20.4.2006 Репутация: нет Всего: нет |
Они есть эти траблы, только как сделать прально?
|
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
читал я читал а терь объясни мне для какой цели ты юзаешь поток? имхо все обращения к форме надо делать через синхронизацию! -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
ВоВеЦ |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 20.4.2006 Репутация: нет Всего: нет |
В потоке у меня берутся значения переменных из текстовика, переменные используются в главной нити
У меня одна процедура в потоке и следовательно одно обращенние к форме через синхронизацию, тоесть всё Оk Это сообщение отредактировал(а) ВоВеЦ - 23.12.2006, 19:01 |
||||
|
|||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
неа имхо у тя вся процедура работает с компонентами типа мемо, а они все располагаются вроде как на форме, т.е. у тя процедура крутить и основная работа будет обращение к форме через синхронизацию, т.е. выигрыша от использования такой процедуры в качестве потока, имхо ноль, имхо проще засунуть то что ты делаешь в обычную процедуру и закрутить там , а если файлы большие и происходит зависание формы, то разбавь циклы Application.ProcessMessages и будет те щастье ![]() -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
ВоВеЦ |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 20.4.2006 Репутация: нет Всего: нет |
Определенный выйграш в этом для меня есть и дело не только в подвисаниях, без потока это всё сделать конешно можно, у меня ща так всё и работает, но хотелось бы в потоке
Это сообщение отредактировал(а) ВоВеЦ - 24.12.2006, 19:20 |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
Имхо целесообразность потоком тогда хороша, когда надо кого то долго ждать( типа синхроная работа с ком портом) или очень долгие расчеты (например расчет Фурье большого порядка)
А у тя кое что в потоке, но все имеет отношение к главному потоку, т.е. большая часть времени у тя (при правильной работе с потоком) будет уходить не на работу алгоритма, а на вход в синхронизацию и выход из нее!!!! Тогда лично я не в курсе надобности использования потока! мож объяснил бы? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |