Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Потоки... / 5 сообщений из 5, страница 1 из 1
26.01.2019, 17:02
    #39765311
Tech N9ne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потоки...
Доброе время суток!
У меня есть поток. В нём 1 цикл, в котором несколько запросов к вк апи.
Я бы хотел создать поток, и по завершению цикла, удалить его. Потом, при необходимости опять создать.
Подскажите, как правильно сделать?

И еще. Я запускаю поток так, при нажатии кнопки:
Код: pascal
1.
2.
  MyThread:=TMyThread.Create(False);
  MyThread.Priority:=tpNormal;



но никак не останавливаю или выключаю или удаляю...
Если я повторно нажму эту кнопку, создастся новый поток? Или этот же поток, начнет работу заново?

Запутанно всё с этими потоками, разобраться не могу....(
...
Рейтинг: 0 / 0
26.01.2019, 18:44
    #39765336
X-Cite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потоки...
Tech N9neДоброе время суток!
У меня есть поток. В нём 1 цикл, в котором несколько запросов к вк апи.
Я бы хотел создать поток, и по завершению цикла, удалить его. Потом, при необходимости опять создать.
Подскажите, как правильно сделать?

И еще. Я запускаю поток так, при нажатии кнопки:
Код: pascal
1.
2.
  MyThread:=TMyThread.Create(False);
  MyThread.Priority:=tpNormal;



но никак не останавливаю или выключаю или удаляю...
Если я повторно нажму эту кнопку, создастся новый поток? Или этот же поток, начнет работу заново?

Запутанно всё с этими потоками, разобраться не могу....(
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
type
  TVkApiPage = class
  private
    function GetVkAlbums: TJSONValue;
    function GetVkContacts: TJSONValue;
    function GetVkDialogs: TJSONValue;
  public
    function GetVkPage: TJSONValue;
  end;

implementation

{ TVkApiPage }

function TVkApiPage.GetVkAlbums: TJSONValue;
begin
  // Получаем альбомы
end;

function TVkApiPage.GetVkContacts: TJSONValue;
begin
  // Получаем контакты
end;

function TVkApiPage.GetVkDialogs: TJSONValue;
begin
  // Получаем диалоги
end;

function TVkApiPage.GetVkPage: TJSONValue;
begin
  var VkAlbumsTask := TTask.Future<TJSONValue>(GetVkAlbums); // будет выполнятся в отдельном потоке
  var VkContactsTask := TTask.Future<TJSONValue>(GetVkContacts); // будет выполнятся в отдельном потоке
  var VkDialogsTask := TTask.Future<TJSONValue>(GetVkDialogs); // будет выполнятся в отдельном потоке
  // тут еще какой-нибудь код пока выполняются наши запросы к API
  var VkAlbums := VkAlbumsTask.Value; // тут получим ответ если он уже пришел или подождем если еще не пришел
  var VkContacts := VkContactsTask.Value; // тут получим ответ если он уже пришел или подождем если еще не пришел
  var VkDialogs := VkDialogsTask.Value; // тут получим ответ если он уже пришел или подождем если еще не пришел
//  Result :=  тут к примеру скливаем все 3 ответа VkAlbums + VkContacts + VkDialogs
end;
...
Рейтинг: 0 / 0
01.02.2019, 09:02
    #39767905
Beltar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потоки...
Там Suspend и Resume у TThread есть, ЕМНИП.
Поток работает до окончания Execute. Потом он может самоубиться, если FreeOnTerminate=True, но по умолчанию оно не равно.
Можно создать, как Suspended, поставить все настройки, только потом запустить.
...
Рейтинг: 0 / 0
01.02.2019, 09:19
    #39767913
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потоки...
Tech N9neЗапутанно всё с этими потоками, разобраться не могу....(
Если один поток на все задачи и лень разбираться, то попробуй: https://github.com/wadman/wthread
...
Рейтинг: 0 / 0
01.02.2019, 18:08
    #39768424
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потоки...
BeltarТам Suspend и Resume у TThread есть, ЕМНИП.
Не рекомендуются. Правильней делать через Wait
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Потоки... / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]