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

Вниз

thrddemo. Загадка.   Найти похожие ветки 

 
Verg   (2003-09-16 12:08) [0]

Delphi6. Установлены все известные UpdatePack-и и RtlUpdate.

NT4 WorkStation SP6a.
Находясь в Delphi беру этот самый thrddemo (..Borland\Delphi6\Demos\Threads\).

Делаю Build All и запуск (F9).

Появляется мордочка с тремя бщксами.


 
Verg   (2003-09-16 12:10) [1]

Пардон, промазал.

Так вот, жму кнопучку Start Sorting. Нормально. Сортирует.
Жму еще раз. Опять нормально. И так шесть раз. На шестом эта прога молча сваливает, прихватив с собой Delphi.

Это только у меня так?


 
mrcat   (2003-09-16 12:23) [2]

:) Неужели Борланд глюк допустил в thrddemo ? сильно сомневаюсь ...


 
Verg   (2003-09-16 12:30) [3]


> Неужели Борланд глюк допустил в thrddemo ? сильно сомневаюсь
> ...


Я не говорил про глюки в thrddemo.

Я хотел, чтобы у кого есть возможность проверить в этих же условиях - проверил.


 
mrcat   (2003-09-16 12:37) [4]

сейчас проверил на NT4 + SP6.
Дэлфи на ней нет, но программу запустил --- без ошибок.


 
Verg   (2003-09-16 12:40) [5]


> Дэлфи на ней нет, но программу запустил --- без ошибок


Без Delphi прога пашет - это я знаю. Именно эффект проявляется из под Делфи.


 
Bel   (2003-09-16 13:13) [6]

Во, блин. У меня то же самое. Win98, Delphi6 + UpdatePack2. На шестом проходе выдала "Программа DELPHI32 вызвала сбой при обращении к странице памяти в модуле KERNEL32.DLL по адресу 0187:bff87ee0". Чё за фигня такая?


 
Verg   (2003-09-16 13:33) [7]

На Win2K - проверил, нормально все.

Че за фигня не знаю.
Похоже что-то с отладчиком у дельфы.


 
MBo   (2003-09-16 13:51) [8]

Встречал в инете упоминания о том, что при запуске многопоточных приложений из-под среды бывают проблемы. Подробностей не помню, кажется, что-то с числом потоков связано. У меня D5, проблем с этой демкой нет, при отслеживании числа потоков - они завершаются корректно, уничтожаются вовремя.


 
Verg   (2003-09-16 14:03) [9]

Еще одно удивление:

procedure TForm1.Button1Click(Sender: TObject);
begin
TThread.Create(false);
end;


Что должно произойти при выполнении этого кода?


 
panov   (2003-09-16 14:07) [10]

>Verg ©
Создастся поток, который останется в незавершенном состоянии.


 
Polevi   (2003-09-16 14:16) [11]

>panov © (16.09.03 14:07) [10]
TThread абстрактный класс


 
MBo   (2003-09-16 14:30) [12]

>Verg © (16.09.03 14:03) [9]
Неужели в демке в Д6 такая логика?
В Д5

procedure TThreadSortForm.StartBtnClick(Sender: TObject);
...
with TBubbleSort.Create(BubbleSortBox, BubbleSortArray) do
OnTerminate := ThreadDone;
...

constructor TSortThread.Create(Box: TPaintBox; var SortArray: array of Integer);
begin
...
FreeOnTerminate := True;
inherited Create(False);
end;


 
Bel   (2003-09-16 14:49) [13]

> MBo © (16.09.03 14:30) [12]

В D6 то же самое.


 
Verg   (2003-09-16 15:01) [14]

Ладно, оставим в покое абстрактный класс TThread, который будет рожден и тихо мирно умрет:


if not Thread.Terminated then
try
Thread.Execute; // Вызов абстрактного метода приведет к исключению, которе для интересующихся будет лежать в FatalException
except
Thread.FFatalException := AcquireExceptionObject;
end;


Вот код, который под Delphi6 под NT4 вызывает аварийное завершение как самой программы, так и Delphi6-Pro:

procedure TForm1.Button1Click(Sender: TObject);
begin
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
end;


Как видим все дело просто в количестве потоков...


 
Verg   (2003-09-16 15:01) [15]

Ладно, оставим в покое абстрактный класс TThread, который будет рожден и тихо мирно умрет:


if not Thread.Terminated then
try
Thread.Execute; // Вызов абстрактного метода приведет к исключению, которе для интересующихся будет лежать в FatalException
except
Thread.FFatalException := AcquireExceptionObject;
end;


Вот код, который под Delphi6 под NT4 вызывает аварийное завершение как самой программы, так и Delphi6-Pro:

procedure TForm1.Button1Click(Sender: TObject);
begin
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
TThread.Create(false);
end;


Как видим все дело просто в количестве потоков...


 
MBo   (2003-09-17 07:56) [16]

http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=17644

Сейчас там вариант для d7, а когда было D6, в файле было написано:

Note :
This application use BPL runtime packages. The application
don"t work fine if you don"t use runtime BPLs. This is a
bug in Synchronize method of TThread, when running under Delphi IDE
IDE cannot run more than 16 threads at the same time



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

Форум: "Основная";
Текущий архив: 2003.09.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.009 c
8-96306
TankMan
2003-05-19 19:05
2003.09.29
Никто не могбы сказать.... как это видео запихнуть в Panel ?


9-96049
Lavo4nik
2003-03-21 20:33
2003.09.29
А можно ли рисунок прикрепить к курсору?


1-96231
Term
2003-09-17 17:47
2003.09.29
как удалить сом-объект


6-96336
Лазуточкин Сергей
2003-07-31 12:03
2003.09.29
Кнопки в Internet Explorer


1-96268
Armageddon
2003-09-16 11:43
2003.09.29
Как управлять перемещением мышки





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский