Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2005.08.14;
Скачать: [xml.tar.bz2];

Вниз

Приоритет 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.015 c
14-1122088462
Comrade
2005-07-23 07:14
2005.08.14
Copy в C++


1-1122378717
sasha_sasha
2005-07-26 15:51
2005.08.14
обработчик ссылки в WebBrowser


1-1122364083
Uran
2005-07-26 11:48
2005.08.14
Добавить событие OnMousDown OnMousUp


1-1122449272
Codec
2005-07-27 11:27
2005.08.14
Кодирование в UUE


5-1092908728
Alexander S.
2004-08-19 13:45
2005.08.14
Кто как компоненты компилирует





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский