Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Синхронизация с главным потоком 
:(
    Опции темы
eXa
Дата 17.12.2006, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.12.2006

Репутация: нет
Всего: нет



H! 
Cуда не посылайте http://forum.vingrad.ru/topic-60076.html, обчитался уже=)
Как синхронизировать поток с другим потоком понятно, а как синхронизировать поток с главным потоком непонятно, неподскажите?
Поток состоит у меня из одной процедуры, главный поток берет значенния 2ух переменных  из отдельного потока, эти значения используется в 2ух процедурах главного потока, причём в разных, как сделать синхронизацию? Было бы замечательно, если ещё с примерами кода покажите мне реализацию синхронизации


Это сообщение отредактировал(а) eXa - 17.12.2006, 23:52
PM MAIL   Вверх
Albinos_x
Дата 18.12.2006, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



используй критические секции...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Alexeis
Дата 18.12.2006, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



eXa, возможно переменные объявленные как threadvar
Цитата

Sometimes, however, you may want to use variables that are global to all the routines running in your thread, but not shared with other instances of the same thread class. You can do this by declaring thread-local variables. Make a variable thread-local by declaring it in a threadvar section. For example,
 threadvar
x : integer;
declares an integer type variable that is private to each thread in the application, but global within each thread.



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Romikgy
Дата 18.12.2006, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(eXa @  17.12.2006,  22:51 Найти цитируемый пост)
Cуда не посылайте http://forum.vingrad.ru/topic-60076.html, обчитался уже=)

А сюда можно ?
http://forum.vingrad.ru/topic-127140.html


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ВоВеЦ
Дата 18.12.2006, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



alexeis1 объявил, ничё хорошего не вышло из этого, завершилось всё крушением проги. С критическими секциями не всё понятно, я уверен мне очень помог бы пример синхронизации при моих условиях:
Цитата

Поток состоит у меня из одной процедуры, главный поток берет значенния 2ух переменных  из отдельного потока, эти значения используется в 2ух процедурах главного потока, причём в разных, как сделать синхронизацию? Было бы замечательно, если ещё с примерами кода покажите мне реализацию синхронизации

Что делают процедуры не важно, с меня +  smile 

---------
эт я eXa =)



Это сообщение отредактировал(а) ВоВеЦ - 18.12.2006, 18:31
PM MAIL   Вверх
eXa
Дата 18.12.2006, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.12.2006

Репутация: нет
Всего: нет



Насчёт этой темы http://forum.vingrad.ru/topic-127140.html, сделал всё как по предпоследнему посту, но получается следующее  
procedure TForm1.TempProc выполняется у меня только олин раз, хотя там стоит цикл for to do. Почему так и как это исправить?


Это сообщение отредактировал(а) eXa - 18.12.2006, 20:14
PM MAIL   Вверх
Sunvas
Дата 18.12.2006, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



eXa, Ну могу я тебе показать как решил ту проблемму. Смотри:
Код

unit Unit1;    
interface    
uses    
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,    
  Dialogs, StdCtrls;    
type    
  TForm1 = class(TForm)    
    Button1: TButton;    
    Button2: TButton;    
    procedure Button2Click(Sender: TObject);    
    procedure Button1Click(Sender: TObject);    
  private    
    { Private declarations }    
  public    
    { Public declarations }    
  end;    
  procedure thred;stdcall;    
var    
  Form1: TForm1;    
  m:word;    
implementation    
var    
potok,id:cardinal;    
procedure thred;    
begin    
while true do    
begin    
sleep(200);    
inc(m);    
if m=10 then tthread.synchronize(nil,form1.Button2.Click);
end;    
end;    
{$R *.dfm}    
procedure TForm1.Button2Click(Sender: TObject);    
begin    
showmessage('Закрываюсь!');    
terminatethread(potok,0);    
close;    
end;    
procedure TForm1.Button1Click(Sender: TObject);    
begin    
m:=0;    
potok:=createthread(nil,128,@thred,nil,0,id);    
end;    
end.



--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
eXa
Дата 19.12.2006, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.12.2006

Репутация: нет
Всего: нет



Sunvas спасибо конешно, но тут ты ничего нового не показал, просто получается не пойми чё, поток каторый нужно запустить привязан к tform1, его можно только синхронизировать, запустить в потоке его у меня не получается. Если есть желанние помочь то просто покажите как синхронизировать с классом tthread в моём случии, ещё раз цитирую навсякий случий
Цитата

Поток состоит у меня из одной процедуры, главный поток берет значенния 2ух переменных  из отдельного потока, эти значения используется в 2ух процедурах главного потока, причём в разных, как сделать синхронизацию? Было бы замечательно, если ещё с примерами кода покажите мне реализацию синхронизации

PM MAIL   Вверх
dumb
Дата 19.12.2006, 02:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 13
Всего: 158



Цитата(ВоВеЦ @  18.12.2006,  18:28 Найти цитируемый пост)
Что делают процедуры не важно

параноидальное ощущение важности и секретности своего кода вкупе с неспособностью объяснить суть проблемы дают предсказуемый результат: пару попыток угадывания с последующим забиванием на топик.

"поток", "главный поток", "отдельный поток"...
Цитата(eXa @  17.12.2006,  23:51 Найти цитируемый пост)
Cуда не посылайте http://forum.vingrad.ru/topic-60076.html, обчитался уже

плохо читал.
PM MAIL   Вверх
eXa
Дата 19.12.2006, 03:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.12.2006

Репутация: нет
Всего: нет



Цитата
параноидальное ощущение важности и секретности своего кода вкупе с неспособностью объяснить суть проблемы дают предсказуемый результат: пару попыток угадывания с последующим забиванием на топик.


Так я имел ввиду не то что эти процедуры нельзя показывать, а просто показать пример в катором, в процедурах произвадились самые элементарные действия  smile  На самом деле не важно, чтоб помочь то..

Цитата

плохо читал.


Прочитать не сложно то, а понять... Месяц назад для меня также были не понятны сами потоки, как ща их синхронизация, ессно вам ща наверно думается чё там сложного то, как мне будет думаться когда увижу вопрос "как реализовать потоки?" Взял, прочитал, накодил. А на самом деле это край для невтыкающих. А потоки я понял мгновенно не после того как сотый раз про них прочитал, а после того как мне показали пример их реализации с моими условиями. Ну вы поняли к чему я smile  Для тех кто не понял, я не прошу решать мою проблему, а просто прошу пример с условиями каторые описал не один раз в этой теме, если не лень помочь за спасибо и "+" то жду ваш пост smile 

Это сообщение отредактировал(а) eXa - 19.12.2006, 04:06
PM MAIL   Вверх
Romikgy
Дата 19.12.2006, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(ВоВеЦ @  18.12.2006,  17:28 Найти цитируемый пост)
Что делают процедуры не важно, с меня +

Цитата(eXa @  19.12.2006,  02:55 Найти цитируемый пост)
если не лень помочь за спасибо и "+" то жду ваш пост

лично мне после таких постов стало лень 
PS типа нате плюс только сделайте, имхо это уже в ЦП


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Romikgy
Дата 20.12.2006, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



воть посмотри


Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  thread.rar 163,08 Kb


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
eXa
Дата 21.12.2006, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.12.2006

Репутация: нет
Всего: нет



Спасиб!
PM MAIL   Вверх
eXa
Дата 22.12.2006, 03:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.12.2006

Репутация: нет
Всего: нет



А если надо синхронизировать с функцией главной нити, что делать? Как не пытался, не вяжется и всё. И вообще с синхронизацией этой чудеса творятся, если ставлю значение цикла продедуры главной нити с каторой синхронизирую от 0 до 1 то цикл отдельной нити нормально работает, если ставлю <1 то цикл отдельной нити зацикливается на 0, плюс к этому даже если значение от 0 до 1 то, то цикл нити значение 0 повторяет 2 раза, путаница вообщем какая та. А самое непонятное, в отдельной нити, инкримент не происходит с синхронизацией или без, от значения цикла в отдельной нити по mod. Буд разбираться...

Это сообщение отредактировал(а) eXa - 22.12.2006, 05:43
PM MAIL   Вверх
Romikgy
Дата 22.12.2006, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(eXa @  22.12.2006,  02:47 Найти цитируемый пост)
если ставлю значение цикла продедуры главной нити с каторой синхронизирую от 0 до 1 то цикл отдельной нити нормально работает, если ставлю <1 то цикл отдельной нити зацикливается на 0, плюс к этому даже если значение от 0 до 1 то, то цикл нити значение 0 повторяет 2 раза, путаница вообщем какая та. А самое непонятное, в отдельной нити, инкримент не происходит с синхронизацией или без, от значения цикла в отдельной нити по mod. Буд разбираться...

Если честно , то я ничего не понял smile


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
eXa
Дата 22.12.2006, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.12.2006

Репутация: нет
Всего: нет



Цитата
Если честно , то я ничего не понял 
 
Да вопрос у меня один только. Если надо синхронизировать с функцией главной нити, что делать? А остальное без исходников и не понять.
PM MAIL   Вверх
Romikgy
Дата 22.12.2006, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(eXa @  22.12.2006,  15:45 Найти цитируемый пост)
Если надо синхронизировать с функцией главной нити, что делать? 

а до этого чем занимались?

Цитата(eXa @  22.12.2006,  15:45 Найти цитируемый пост)
А остальное без исходников и не понять. 

дык выкладывай


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
eXa
Дата 22.12.2006, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.12.2006

Репутация: нет
Всего: нет



Цитата

а до этого чем занимались?

У тебя в примере, синхронизируется только процедуры, если попробывать синхронизировать функции, вылезает следующия ошибка:  There is no overloaded version of 'Synchronize' that can be called with these arguments

Цитата

дык выкладывай

Пожайлуста

Код

procedure MaName.Execute;
var
  c, t: integer;
  oks: string;
begin
 t:=0;
  for c:= 0 to LsMa.Count-1 do begin
   if c mod 2 = 0 then
    Inc (t);
    if c = 20 then
     t:= 0;
    maok:= LsMa.Strings[c];
     oks:= LsOks.Strings[t];
     TThread.Synchronize(nil,Form1.Send);
  end;
 end;


Код


procedure TForm1.Send;
var
  i :   Integer;
  x :   String;
begin
  x:= nms.Text;
  for i:= 1 to strtoint(x) do begin
  mats(mak, ps, vtm, tex);
    SubDelay(1000);
 end;
end;



если x >1 то цикл C = 0, если x=1 то цикл работает нормально  




Это сообщение отредактировал(а) eXa - 22.12.2006, 23:04
PM MAIL   Вверх
Romikgy
Дата 22.12.2006, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(eXa @  22.12.2006,  18:26 Найти цитируемый пост)
если попробывать синхронизировать функции

а зачем ? переделай под процедуру

Цитата(eXa @  22.12.2006,  18:26 Найти цитируемый пост)
Пожайлуста


Цитата(eXa @  22.12.2006,  18:26 Найти цитируемый пост)
если x >1 то цикл C = 0, если x=1 то цикл работает нормально  

этого кода мало 
ибо что есть
Цитата(eXa @  22.12.2006,  18:26 Найти цитируемый пост)
Form1.Send


Цитата(eXa @  22.12.2006,  18:26 Найти цитируемый пост)
LsMa


Цитата(eXa @  22.12.2006,  18:26 Найти цитируемый пост)
LsOks


Цитата(eXa @  22.12.2006,  18:26 Найти цитируемый пост)
mats


Цитата(eXa @  22.12.2006,  18:26 Найти цитируемый пост)
  SubDelay

 smile 
прицепи весь проект , и скажи что хочешь что б было ,
тогда можно будет сказать как это сделать


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
eXa
Дата 22.12.2006, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.12.2006

Репутация: нет
Всего: нет



Цитата
а зачем ? переделай под процедуру

Если можно было, то переделал, только функцией, подругому никак=(
Цитата
этого кода мало 
ибо что есть

когда больше x, от 2 до бесконечности
Цитата
Form1.Send

извеняюсь Form1.Send это и есть процедура  TForm1.SendSMSki
Цитата
LsMa
 & 
Цитата
LsOks

Код
LsOck:= TStringList.Create;
  LsOks.LoadFromFile('oks.txt');
  LsMa:= TStringList.Create;
  LsMa.LoadFromFile('ma.txt');

Цитата
mats

Это функция, каторая делется на множество подфункций, по отправке и получения ответа сокетов
Цитата
SubDelay

Почти тоже самое что и sleep, только без всяких зависаний
Код

procedure SubDelay(Time: Cardinal);
 var
   Ticks: Cardinal;
 begin
   Ticks:= GetTickCount;
   while GetTickCount - Ticks < Time do
   begin
     SleepEx(50, True);
     Application.ProcessMessages
   end;
 end;



Это сообщение отредактировал(а) eXa - 22.12.2006, 23:11
PM MAIL   Вверх
Romikgy
Дата 22.12.2006, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



мне все равно не понятно почем при 
Цитата(eXa @  22.12.2006,  18:26 Найти цитируемый пост)
если x >1 то цикл C = 0

ведь с зависит от LsMa.Count
Цитата(eXa @  22.12.2006,  18:26 Найти цитируемый пост)
 for c:= 0 to LsMa.Count-1 do begin

а х зависит от 
Цитата(eXa @  22.12.2006,  18:26 Найти цитируемый пост)
  x:= nms.Text;
  for i:= 1 to strtoint(x) do begin

nms.Text
 smile 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
eXa
Дата 23.12.2006, 04:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.12.2006

Репутация: нет
Всего: нет



Мне темболее непонятно, я сказал как есть, nms.text - едит который передаёт значение x, тоесть значение до которого накручивается цикл

Это сообщение отредактировал(а) eXa - 23.12.2006, 04:26
PM MAIL   Вверх
Romikgy
Дата 23.12.2006, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(eXa @  23.12.2006,  03:24 Найти цитируемый пост)
Мне темболее непонятно

тогда проще может скажешь что хочешь в конце получить?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ВоВеЦ
Дата 23.12.2006, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



Я хочу чтоб цикл в procedure MaName.Execute работал нормально при любом значении x 
PM MAIL   Вверх
Romikgy
Дата 23.12.2006, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(eXa @  22.12.2006,  18:26 Найти цитируемый пост)
procedure MaName.Execute;
var
  c, t: integer;
  oks: string;
begin
 t:=0;
  for c:= 0 to LsMa.Count-1 do begin
   if c mod 2 = 0 then
    Inc (t);
    if c = 20 then
     t:= 0;
    maok:= LsMa.Strings[c];
     oks:= LsOks.Strings[t];
     TThread.Synchronize(nil,Form1.Send);
  end;
 end;

Я чета здесь упоминания х вообще не вижу smile


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ВоВеЦ
Дата 23.12.2006, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



Если ты читал мои посты то должен понять про чё, x в процедуре  TForm1.Send; 
Цитата

если x >1 то цикл C = 0, если x=1 то цикл работает нормально  

PM MAIL   Вверх
Romikgy
Дата 23.12.2006, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



кса одна трабла могет быть

Цитата(eXa @  22.12.2006,  18:26 Найти цитируемый пост)
maok:= LsMa.Strings[c];
     oks:= LsOks.Strings[t];

хоть и чтение но могут быть траблы, ибо обращение из потока к данным основного потока(форме)


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ВоВеЦ
Дата 23.12.2006, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



Они есть эти траблы, только как сделать прально?
PM MAIL   Вверх
Romikgy
Дата 23.12.2006, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(ВоВеЦ @  23.12.2006,  16:47 Найти цитируемый пост)
Если ты читал мои посты то должен понять про чё, x в процедуре  TForm1.Send; 

читал я читал
а терь объясни мне для какой цели ты юзаешь поток?
Цитата(ВоВеЦ @  23.12.2006,  16:53 Найти цитируемый пост)
Они есть эти траблы, только как сделать прально? 

имхо все обращения к форме надо делать через синхронизацию!


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ВоВеЦ
Дата 23.12.2006, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



Цитата

а терь объясни мне для какой цели ты юзаешь поток?

В потоке у меня берутся значения переменных из текстовика, переменные используются в главной нити
Цитата

имхо все обращения к форме надо делать через синхронизацию!

У меня одна процедура в потоке и следовательно одно обращенние к форме через синхронизацию, тоесть всё Оk

Это сообщение отредактировал(а) ВоВеЦ - 23.12.2006, 19:01
PM MAIL   Вверх
Romikgy
Дата 24.12.2006, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(ВоВеЦ @  23.12.2006,  18:01 Найти цитируемый пост)
тоесть всё Оk

неа 
Цитата(ВоВеЦ @  23.12.2006,  18:01 Найти цитируемый пост)
В потоке у меня берутся значения переменных из текстовика

имхо у тя вся процедура работает с компонентами типа мемо, а они все располагаются вроде как на форме, т.е. 
у тя процедура крутить и основная работа будет обращение к форме через синхронизацию,
т.е. выигрыша от использования такой процедуры в качестве потока, имхо ноль,
имхо проще засунуть то что ты делаешь в обычную процедуру и закрутить там ,
а если файлы большие и происходит зависание формы, то разбавь циклы 
Application.ProcessMessages
 и будет те щастье smile имхо


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ВоВеЦ
Дата 24.12.2006, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



Определенный выйграш в этом для меня есть и дело не только в подвисаниях, без потока это всё сделать конешно можно, у меня ща так всё и работает, но хотелось бы в потоке

Это сообщение отредактировал(а) ВоВеЦ - 24.12.2006, 19:20
PM MAIL   Вверх
Romikgy
Дата 25.12.2006, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Имхо целесообразность потоком тогда хороша, когда надо кого то долго ждать( типа синхроная работа с ком портом) или очень долгие расчеты (например расчет Фурье большого порядка)
А у тя кое что в потоке, но все имеет отношение к главному потоку, т.е. большая часть времени у тя (при правильной работе с потоком) будет уходить не на работу алгоритма, а на вход в синхронизацию и выход из нее!!!! 
Тогда лично я не в курсе надобности использования потока!

Цитата(ВоВеЦ @  24.12.2006,  18:18 Найти цитируемый пост)
Определенный выйграш в этом для меня есть

мож объяснил бы?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1340 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.