Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2014, 18:40   #11
STRELOK-2007
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 144
По умолчанию

Цитата:
Сообщение от oleg_swimmer Посмотреть сообщение

Спасибо, разберусь, переделаю. Спасибо за поддержку.
Вроде как при многопоточном чтении переменных, не должно быть проблем. Но на всякий случай, тоже через критическую секцию проводи.
Ибо квант времени чтения переменной, может перекрестить с квантом записи. И будет неразбериха, в лучшем случае.
STRELOK-2007 вне форума Ответить с цитированием
Старый 18.02.2014, 18:49   #12
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Цитата:
Сообщение от oleg_swimmer Посмотреть сообщение
Подскажите, где прочитать про буферизацию, потому что кажется вы точно уловили суть моей проблемы.
Чёт я совсем затупил. Решение элементарное.
Код:
Memo1.Lines.BeginUpdate;
Memo1.Lines.EndUpdate;
Между этими строками вставляй сразу блоки текста, и всё
doktor255 вне форума Ответить с цитированием
Старый 18.02.2014, 19:54   #13
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Если нужна визуализация длительного расчетного процесса, то от доппотока много пользы не будет. Только дополнится лишняя сущность. Достаточно только продумать что, как и когда выводить на экран.
P.S.
Но это в том случае если во время данного процесса не нужно занимать программу другими делами.
Имхо.
northener вне форума Ответить с цитированием
Старый 18.02.2014, 22:07   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от oleg_swimmer Посмотреть сообщение
Здравствуйте!
При щелчке по форме выдается сообщение, что приложение не отвечает.
Кстати, если используете вывод данных в самом приложении в цикле (т.е. не используете доппотоки), то добавление внутрь цикла команды:
Код:
Application.ProcessMessages;
может заставить форму "отзываться"
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.02.2014, 13:58   #15
oleg_swimmer
 
Регистрация: 28.08.2011
Сообщений: 6
По умолчанию

Для организации потока разработал схему:

procedure TForm15.Button13Click(Sender: TObject);
var
err_solution, k, n1, n2, numRegionToCompute, iter: integer;
type_of_day: SmallInt;
F: double;

begin
phmThread:=TphmThread.Create(false) ;
phmThread.FreeOnTerminate:=true;
phmThread.Priority:=tpLower;
phmThread.Resume;
end;

В Execute вставил вычислительный процесс, в том числе и подпрограмму, которая периодически обращается к phmThread.Synchronize(phmThread.phm PrintF). phmPrintF выводит результаты в Memo1:
form15.Memo1.Lines.Add(inttostr(ite r_thread)+' F='+FloatToStrF(minF_thread,ffexpon ent,14,6));
Все кажется работает неплохо, но после завершения программы выскакивает окно с ошибкой 1400, Недопустимый дескриптор окна. Не подскажете, как от этого избавится?
oleg_swimmer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизация (сокращение) кода решения задачи #46 c acmp.ru - вывод числа E с заданной точностью Poma][a Паскаль, Turbo Pascal, PascalABC.NET 47 05.07.2013 23:50
Delphi.Чтение файла в Memo, вычисление, добавление строк в Memo antonio_sk Помощь студентам 0 26.04.2013 18:01
Алгоритм решения задачи snpccvs Помощь студентам 8 13.02.2012 22:50
Решения задачи* asso Паскаль, Turbo Pascal, PascalABC.NET 5 11.12.2011 08:29
вывод решения в файл, с++ DimR Помощь студентам 1 31.10.2011 20:49