![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Уважаемые, спецы и копипастеры, помогите решить проблему.
Проблема: даю запрос на получение данных с сервера и обрабатываю полученный ответ формата JSON Код:
PostVK:=TStringList.Create;
logVK:=IdHTTP1.Post('http://'+server+'?act=a_check&key='+key+'&ts='+ts+'&wait=25',postvk);
js := TlkJSONobject.Create;
js := TlkJSON.ParseText(logvk) as TlkJSONobject;
ts:=IntToStr(js.getInt('ts'));
jl:=js.Field['updates'] as TlkJSONlist;В тот момент когда происходит этот ряд операторов, программа подвисает, что именно и мешает мне реализовать задумку. В чем суть программы? Программа предназначена для обмена мгновенными сообщениями соц сети Вконтакте. Поэтому при проверке апдейтов (пользователь онлайн, оффлайн и тд) категорично нельзя чтобы программа подвисала. Решение: ? ![]() |
|
#2
|
||||
|
||||
|
Цитата:
|
|
#3
|
|||
|
|||
|
Поподробнее можно? Почитал я про этот класс и что?
Не мог бы подсказать как да что там. Что мне в программу вбить? Последний раз редактировалось Кодер, 17.04.2011 в 13:56. |
|
#4
|
||||
|
||||
|
вот поподробнее:
Код:
type
TStatusThread = class(TThread)
protected
procedure Execute; override;
public
constructor Create;
end;
{ TStatusThread }
constructor TStatusThread.Create;
begin
inherited Create(True);
FreeOnTerminate:=True;
Resume;
end;
procedure TStatusThread.Execute;
begin
// получаем пользователь онлайн, оффлайн и тд
end;
begin
TStatusThread.Create;
end; |
|
#5
|
|||
|
|||
|
А если попробывать так?
Код:
type
TMyThread = class(TThread)
private
{ Private declarations }
protected
procedure DoWork;
procedure Execute; override;
end;
implementation
procedure TMyThread.Execute;
begin
while not Terminated do
Synchronize(DoWork);
end;
procedure TMyThread.DoWork;
begin
//Получаем данные
end; |
|
#6
|
||||
|
||||
|
Цитата:
|