Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
ВнизПроблемы с потоками Найти похожие ветки
← →
Homyak_Max (2004-07-13 18:39) [0]Для рассылки по нескольким Ftp создается несоколько потоков.
with UploadFile.Create(true) do
begin
//передача необходимых параметров
FreeOnTerminate:=true;
Execute;
//Resume;
end;
Причем если ставить Execute то потоки все равно вызываются создаются последовательно, если же ставить Resume, то начинает вылетать ошибка Abstract Error. В не зависимости от того, какой код вообще находится в методе Execute
Кто с таким сталкивался помогите чем можете %)
← →
Тимохов © (2004-07-13 18:41) [1]что такое UploadFile?
← →
Reindeer Moss Eater © (2004-07-13 18:41) [2]Execute вызывать не надо.
Не надо создавать экземпляров абстрактных классов.
← →
Семен Сорокин © (2004-07-13 18:45) [3]
> Homyak_Max (13.07.04 18:39)
убери Execute, расскоментарь Resume.
← →
Тимохов © (2004-07-13 18:45) [4]
> убери Execute, расскоментарь Resume.
и ответь, что такое uploadfile :))))))
← →
Reindeer Moss Eater © (2004-07-13 18:46) [5]Интересно какой смысл во вторичном потоке, у которого метод Execute вызван из главного потока и стало быть выполняется там же. В основном потоке.
И как несколько экземпляров таких Threads могут работать параллельно?
Никак.
← →
Digitman © (2004-07-13 18:52) [6]
> Homyak_Max
Execute() - это обыкновеная подпрограмма.. и Create() - тоже по сути обыкновенная подпрограмма
а некая процедура, будучи вызванной в некоем кодовом потоке, в соответствии с концепцией Win32 будет выполнена в контексте того код.потока, который вызвал эту подпрограмму к выполнению
пляши от этих постулатов ... и - первый плюс в помощь - исх.тексты класса TThread в модуле Classes.pas
← →
Homyak_Max (2004-07-13 19:07) [7]Uploadfile - наслденик Thread.
Я и сам понимаю, что Execute вызывать не надо.. но если раскоментарить, то начинает вылазить постоянно ошибка Abstract Error
← →
Reindeer Moss Eater © (2004-07-13 19:09) [8]Не надо создавать экземпляров абстрактных классов.
← →
Тимохов © (2004-07-13 19:09) [9]тело execute на бочку.
← →
Reindeer Moss Eater © (2004-07-13 19:13) [10]Лучше объявление execute
← →
Reindeer Moss Eater © (2004-07-13 19:14) [11]Хотя там скорее всего inherited Execute делается.
Иначе бы уже при вызове конструктора ругань была, а не при resume
← →
Тимохов © (2004-07-13 19:19) [12]
> Иначе бы уже при вызове конструктора ругань была
с чего это?
если suspended, то к execute обращения нет, а следовательно и нет ошибки.
АВТОРУ.
А предыдущий оратор похоже прав! Вы забыли написать override около execute.
← →
Reindeer Moss Eater © (2004-07-13 19:21) [13]Создание экземпляра класса имеющего абстрактные методы карается генерацией исключения.
Я сначала подумал что у него Execute абстрактный, потом понял, что этого не может быть.
← →
Тимохов © (2004-07-13 19:22) [14]
> Reindeer Moss Eater © (13.07.04 19:21) [13]
> методы карается генерацией исключения.
да ну?
← →
Тимохов © (2004-07-13 19:22) [15]предупреждением это карается.
← →
Семен Сорокин © (2004-07-13 19:23) [16]
> Reindeer Moss Eater © (13.07.04 19:21) [13]
> Создание экземпляра класса имеющего абстрактные методы карается
> генерацией исключения.
неа, просто ворнингом это карается, только некоторые на них внимание не обращают.
← →
Семен Сорокин © (2004-07-13 19:23) [17]точно, Override забыл
2Homyak_Max
давай не тяни, в чем трабла? :))
← →
Тимохов © (2004-07-13 19:24) [18]ошибка похоже найдена, пусть автор еще подтвердит.
← →
Reindeer Moss Eater © (2004-07-13 19:28) [19]В любом случае у него вызывается унаследованный Execute
Или забыл override или явно вызывал inherited.
← →
Igorek © (2004-07-13 19:37) [20]
> Homyak_Max (13.07.04 18:39)
А каким компонентом для ФТП ты пользуешься?
← →
Homyak_Max (2004-07-14 00:01) [21]Всем спасибо.. Проблема действительно была в том, что не был дописан override в обїявлении класса
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.091 c