david_yusupov
-
Постов
48 -
Зарегистрирован
-
Посещение
Активность репутации
-
-
david_yusupov отреагировална Pax Beach в Убить поток TThread?
Посмотрите класс, реализующий альтернативный Sleep (под катом).
соль в следующем:
создаем потомка TThread, запускаем, ждем завершения:
class function TDelays.Delay(aDuration: integer): TDelay; begin if not Assigned(FList) then FList := TList<TDelay>.Create; Result := TDelay.Create(aDuration); FList.Add(Result); Result.FreeOnTerminate := false; Result.OnTerminate := OnTerminateItem; Result.Start; Result.WaitFor; end; Работаем с ним нежно
procedure TDelay.Execute; begin inherited; while (not Terminated) and (MilliSecondsBetween(now, FStart) < FDelay) do begin sleep(100); end; end; По завершении работы убиваем:
class procedure TDelays.OnTerminateItem(Sender: TObject); begin TTask.Run( procedure begin try if Assigned((Sender as TDelay)) then begin (Sender as TDelay).Free; FList.Remove((Sender as TDelay)); end; except end; end); end; А можем убить и досрочно:
(TObject as TDelay).Free; потому что в деструкторе стоит такой код:
destructor TDelay.Destroy; begin Terminate; if (not Suspended) then WaitFor; inherited; end;
uDelays.zip
-
david_yusupov отреагировална dnekrasov в Убить поток TThread?
В наследнике TThread объявите
FCancelledEvent: TSimpleEvent;
Переопределите TerminatedSet;
в нем сделайте inherited и FCancelledEvent.SetEvent
Ну и вместо Sleep используйте FCancelledEvent.WaitFor
После этого Ваша проблема исчезнет
-
david_yusupov получил реакцию от Rusland в TServerSocket TClientSocket в FireMonkey
Не могу знать во время или нет... это библиотека работает на MAC OS, на андройде не проверял.
http://www.ararat.cz/synapse/doku.php/download
-
david_yusupov получил реакцию от zairkz в TServerSocket TClientSocket в FireMonkey
Не могу знать во время или нет... это библиотека работает на MAC OS, на андройде не проверял.
http://www.ararat.cz/synapse/doku.php/download
-
david_yusupov получил реакцию от AgrikBus в Анимированные выводит диаграмму (график)
Анимированные выводит диаграмму (график), сейчас делаем вывод диаграммы на Image, с использованием Bitmap.Canvas. И анимированые осуществляем постоянной перерисовкой.
ЗЫ
Наблюдаеся не большое по дергивание присмешение и вызывает увелечение нагрузки на процессор.
-
david_yusupov получил реакцию от AngelaJer в Анимированные выводит диаграмму (график)
Анимированные выводит диаграмму (график), сейчас делаем вывод диаграммы на Image, с использованием Bitmap.Canvas. И анимированые осуществляем постоянной перерисовкой.
ЗЫ
Наблюдаеся не большое по дергивание присмешение и вызывает увелечение нагрузки на процессор.