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