Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2019, 13:58   #21
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Набросал демонстрацию работы с потоками. В примере с таймером добавил Sleep а то потоки больно быстро повскакивали глазом не успевал моргнуть.
А так он не нужен.

И инкапсуляцию не стал доделывать. Что-бы не усложнять пример.

В демонстрации где без таймера там procedure ReDraw; надо сделать приватной, а то я как то забыл это сделать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 27.09.2019 в 14:02.
Pavia вне форума Ответить с цитированием
Старый 27.09.2019, 21:08   #22
noveek
Пользователь
 
Регистрация: 26.05.2015
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
Набросал демонстрацию работы с потоками. В примере с таймером добавил Sleep а то потоки больно быстро повскакивали глазом не успевал моргнуть.
А так он не нужен.

И инкапсуляцию не стал доделывать. Что-бы не усложнять пример.

В демонстрации где без таймера там procedure ReDraw; надо сделать приватной, а то я как то забыл это сделать.
Спасибо очень познавательно только не то немного вот смотри я могу поставить костыль и это в принципе будет работать только не до конца =( а если слишком большое значение gg то да зависнет, а в однопоточном приложении типа черновик всё работает и без костылей и без бреаков

Код:
procedure th.Execute;
var
gg:integer;
begin
while work do begin
  cs.Enter;

  cs.Leave;
if work then begin
Create
...
...
for i:= downto 1 do begin
//инициализирую весь текст
for j:=ishem.Count-1 downto 0 do 
//Ищу совпадения из списка в этом тексте и если нашёл сохраняю
if Pos('chtoto', gdeto.Text)>0 then begin
.Savetofile
end;
inc(gg);
if gg=50 then Break; 
end;
end;
gg:=0;
freeandnil(1);
freeandnil(2);
freeandnil(3);
Synchronize(sync);
end;
end;

Последний раз редактировалось noveek; 27.09.2019 в 21:25.
noveek вне форума Ответить с цитированием
Старый 28.09.2019, 05:07   #23
noveek
Пользователь
 
Регистрация: 26.05.2015
Сообщений: 56
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Нет. Вы то прочитали, что там написано? Не до или после синхронизации, а вместо нее - убирать ее. Где я писал про поток завис или брек?
Спасибо до меня допёрло я делаю это в самой Synchronize и всё работает, но не хотелось бы заново создавать объекты если они уже созданы в execute ( к тому же появилась новая проблема с подвисанием (

Последний раз редактировалось noveek; 28.09.2019 в 05:11.
noveek вне форума Ответить с цитированием
Старый 28.09.2019, 05:44   #24
noveek
Пользователь
 
Регистрация: 26.05.2015
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
Набросал демонстрацию работы с потоками. В примере с таймером добавил Sleep а то потоки больно быстро повскакивали глазом не успевал моргнуть.
А так он не нужен.

И инкапсуляцию не стал доделывать. Что-бы не усложнять пример.

В демонстрации где без таймера там procedure ReDraw; надо сделать приватной, а то я как то забыл это сделать.
Ааа спасибо тебе я вроде допёр

Код:
procedure th.Execute;
for i:= downto 1 do begin
//инициализирую весь текст
end;
Synchronize(ishem);
end;
Freeandnilы
Synchornize(sync);
end;
end;

procedure ishem;
for j:=ishem.Count-1 downto 0 do 
//Ищу совпадения из списка в этом тексте и если нашёл сохраняю
if Pos('chtoto', gdeto.Text)>0 then begin
.Savetofile
end;
noveek вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
boost::thread std::thread lallollulz Общие вопросы C/C++ 2 11.09.2019 00:48
Итерационные циклы, циклы с фактериалами, вообще не могу догнать( помогите плиз! Svetlana_ Помощь студентам 2 01.11.2015 18:58
C++ Thread и WIN API Pir C++ Builder 2 13.01.2014 12:12
thread slipp Win Api 2 24.11.2013 03:11
Thread и MVC OnlyFart ASP.NET 0 06.05.2011 11:12