Показать сообщение отдельно
  #38  
Старый 20.03.2014, 05:15
novashdima novashdima вне форума
Новичок
 
Регистрация: 05.02.2010
Адрес: Украина, Киев
Сообщения: 64
Версия Delphi: XE3, XE4
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
Так как метод MyThread.Analys выполняется в параллельном потоке, то нельзя вот так просто (без синхронизации) обращаться к объектам основного потока.
Спасибо, переделаю.
Цитата:
Сообщение от poli-smen
Конечно же критическая секция в этом месте заблокирует выполнение другого (случайно запущенного) параллельного потока, но что при этом будет с глобальной переменной AnalysThread? Ведь после второго нажатия на кнопку запуска в этой переменной уже будет указатель на объект другого (заблокированного) параллельного потока, и первый (работающий) параллельный поток используя эту переменную будет обращаться именно к заблокированному потоку, а не к самому себе, что должно было бы быть по задумке.
Хм... в общем-то идея была понята правильно, но по коду два раза начать обработку нельзя...
Цитата:
Сообщение от poli-smen
Поэтому когда объект хочет обратиться к своим полям, методам и свойствам, нужно использовать вовсе не глобальную переменную, а специальную переменную Self, которую, в свою очередь, можно опускать.
Ага, ну я уже итак везде поубирал "AnalysThread."
Цитата:
Сообщение от poli-smen
p.s. Что-то я тут слишком много букв написал, надеюсь понятно свою мысль изложил
Последние пару предложение поодиночке непонятны, но в общем все понятно
Ответить с цитированием