В Delphi 2009 я обнаружил, что в любое время, когда я использую TThread.CurrentThread в приложении, я получаю сообщение об ошибке, подобное приведенному ниже, когда приложение закрывается:
Exception EAccessViolation in module ntdll.dll at 0003DBBA.
Access violation at address 7799DBBA in module 'ntdll.dll'. Write of
address 00000014.
Если это только моя машина, вы можете воспроизвести это через несколько секунд: создайте новое приложение форм Delphi, добавьте кнопку в форму и используйте для обработчика событий кнопки что-то вроде следующего:
procedure TForm1.Button1Click(Sender: TObject);
begin
TThread.CurrentThread;
end;
Как на моей машине Vista, так и на моей машине XP я нахожу это, если я не нажимаю кнопку все хорошо, но если я нажму кнопку, я получу вышеуказанное сообщение об ошибке, когда я закрою приложение.
Итак... Мне интересно, если это ошибка, но в то же время я думаю, что это довольно вероятно, что я просто не понимаю что-то очень простое о том, как вы должны работать с TThreads в Delphi. Боюсь, что я немного новичок в Delphi.
Есть ли что-то явно неправильное в использовании TThread.CurrentThread?
Если нет, и у вас есть Delphi 2009, возникает ли у вас такая же проблема, если вы реализуете мой простой пример проекта?