Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.14;
Скачать: CL | DM;

Вниз

Приоритет IdFTP   Найти похожие ветки 

 
Pavelkq   (2005-05-05 14:26) [0]

Написал программу синхронизации удаленного сервера ФТП с локальной папкой. На моей тачке работает ничего так. А когда запустил эту штуку на сервере, все юзеры отвалились и все базы стали недоступны пока не закрыл прогу. Вешалка происходит на том месте, где идет команда
IdFTP1.Get("RemoteFileName","LocalFileName",True);
Вообще, сама программа работает хорошо, все скачивает, что надо и красиво завершается, но во время ее работы все остальное становится мертным. Что делать?


 
TUser ©   (2005-05-05 14:32) [1]

Приоретет процессу/потоку выставлять пониже???


 
Pavelkq   (2005-05-05 15:07) [2]

Так я никаких потоков не организовывал. Пишу на форм.крейте конект и гет. и все. Вообще, эта проблема у меня была не только с этой программой. Например, если я делаю серьезные операции с массивами (сравнение с сортировкой), то тоже все вешается. При этом форма сама тоже замирает (на ней ничего не отображается и ничего не работает). Я, конечно на сервере в диспетчере задач понизил приоритет, но как бы это сделать корректно? Как-то я грузил вордовский файл в массив через поток, там ничего не тормозило. Может правда потоком скачивать файлы? А нельзи ли пример, как это организовать? Я не силен в потоках.


 
Cobalt ©   (2005-05-05 15:07) [3]

А от какого пользователя работает прога?


 
Pavelkq   (2005-05-05 15:08) [4]

Прога от администратора.


 
Cobalt ©   (2005-05-05 15:29) [5]

я просто помню, есть при установке такая фишка, ограничение на количество подключений...


 
Layner ©   (2005-05-05 15:41) [6]

ПРосто все операции с файлами и т.п. надо делать в отдельном потоке.


 
Pavelkq   (2005-05-06 06:49) [7]

Ребята, пришлите, пожалуйста пример, как эти потоки организовать?


 
Digitman ©   (2005-05-06 11:16) [8]

(%DELPHI)\Demos\Threads\thrddemo.dpr


 
Pavelkq   (2005-05-06 14:19) [9]

Вот нашел как процесс создавать.
unit uMonThread;

interface

uses
 Classes, windows, SysUtils;

type

 TMonDirThread = class(TThread)
 private
   FPath: String;                    //Проверяемый каталог
 protected
   procedure Execute; override;
 public
   constructor Create(aPath: String);
 end;

implementation
uses
 ufMain;

constructor TMonDirThread.Create(aPath: String);
begin
 inherited Create(True);     //Созданный поток создается в приостановленном состоянии
 FreeOnTerminate := True;    //Поток освободит ресурсы при окончании работы
 FPath := aPath;            //Проверяемый каталог
 Self.Priority := tpHighest; //Очень высокий приоритет
 Resume;
end;

procedure TMonDirThread.Execute;
var
 HandleChange: THandle;  //Handle создаваемого объекта для ожидания события
begin

 HandleChange :=
   FindFirstChangeNotification(
     PChar(FPath),                           //Проверяемый каталог
     False,                                  //Подкаталоги не проверяются
     FILE_NOTIFY_CHANGE_FILE_NAME +          //Проверка создания/удаления/
     FILE_NOTIFY_CHANGE_ATTRIBUTES);         //переименования/изменения файлов

   while not Terminated do
   begin
     case WaitForSingleObject(HandleChange,1000) of
       WAIT_FAILED: Terminate;                //Ошибка, завершаем поток

     end;
   end;
end;

end.

Но там был тим Handle, а у меня Cardinal (выделил жирным). Как это сделать?


 
Pavelkq   (2005-05-06 14:54) [10]

... т.е. мне надо создать процесс для команды IdFTP1.Get("RemoteFileName","LocalFileName",True);



Страницы: 1 вся ветка

Текущий архив: 2005.08.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.047 c
1-1122534545
Karluha
2005-07-28 11:09
2005.08.14
Interface ID


14-1122215801
Alex17
2005-07-24 18:36
2005.08.14
Сеть


4-1118755242
AndreyProg
2005-06-14 17:20
2005.08.14
Как восстановить расположение ярлыков на Рабочем столе?


1-1122270140
tttyu
2005-07-25 09:42
2005.08.14
Как узнать дерикторию откуда прога запускается?


3-1120757940
igorek520
2005-07-07 21:39
2005.08.14
Проблема с переводом БД