powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / виснет экранная форма
25 сообщений из 155, страница 2 из 7
виснет экранная форма
    #40106766
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
northener
Mizer73
s62,

так же в основном потоке, так получилось оптимальнее, принимаются ответы и пишутся в буфер ответов.

Вот это меня смущает. Работа с устройством наверно ведется в синхронном режиме. Отсюда и завис вырастает.

каким образом?
...
Рейтинг: 0 / 0
виснет экранная форма
    #40106938
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если работа производится в вашем цикле, то возможно вас спасет старый добрый Application.ProcessMessages :)
...
Рейтинг: 0 / 0
виснет экранная форма
    #40106977
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argo
Если работа производится в вашем цикле, то возможно вас спасет старый добрый Application.ProcessMessages :)

Отличный совет.
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107057
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
L_argo
Если работа производится в вашем цикле, то возможно вас спасет старый добрый Application.ProcessMessages :)


попробовал. не спасает
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107058
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
northener
пропущено...

Вот это меня смущает. Работа с устройством наверно ведется в синхронном режиме. Отсюда и завис вырастает.

каким образом?
Пока идёт синхронный обмен в основном потоке, интерфейс висит.

>>>Пока идёт синхронный обмен --- выполняется функция чтения (или записи) в синхронном режиме.
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107059
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
northener
Mizer73
s62,

так же в основном потоке, так получилось оптимальнее, принимаются ответы и пишутся в буфер ответов.

Вот это меня смущает. Работа с устройством наверно ведется в синхронном режиме. Отсюда и завис вырастает.

каким образом?
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107062
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переведи обмен с устройством в отдельный поток, и интерфейс тормозить не будет.
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107069
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73каким образом?

Синхронные функции не возвращаются до выполнения операции - не работает цикл
выборки сообщений - зависон. Разве это не очевидно?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107117
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rgreat
Переведи обмен с устройством в отдельный поток, и интерфейс тормозить не будет.

так и сделал.
как раз после этого отдельного потока и начались проблемы.
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107119
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov
Mizer73каким образом?

Синхронные функции не возвращаются до выполнения операции - не работает цикл
выборки сообщений - зависон. Разве это не очевидно?..

нет, не очевидно. так как синхронно могут происходить разные вещи, в том числе и те, которые не ждут друг от друга результата.

у меня, как раз, и есть тот случай, когда нигде и ни что не завязано на ожидание результата.
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107121
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вещи не ждут результата, это по определению асинхронность. Не надо
использовать слова не по назначению, это затрудняет взаимопонимание.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107127
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
rgreat
Переведи обмен с устройством в отдельный поток, и интерфейс тормозить не будет.

так и сделал.
как раз после этого отдельного потока и начались проблемы.

Значит ты криво написал взаимодействие с этим потоком.
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107143
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rgreat
Mizer73
пропущено...

так и сделал.
как раз после этого отдельного потока и начались проблемы.

Значит ты криво написал взаимодействие с этим потоком.


так нет никакого взаимодействия, кроме общего компонента. и то, из одного компонента ТМемо информация берётся, а в другой ТМемо информация складывается
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107144
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
куда копать то?
почему "внутрянка" не тормозит, а тормозит экран?
ни процессор, ни графика не загружены.
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107153
Zelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73,

с ТМемо работа идет напрямую из потока? "код в студию"
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107154
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73
так нет никакого взаимодействия, кроме общего компонента. и то, из одного компонента ТМемо информация берётся, а в другой ТМемо информация складывается

https://lurkmore.to/Взаимоисключающие_параграфы
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107156
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TMemo из потока? Это уже начинает радовать.
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107182
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zelius
с ТМемо работа идет напрямую из потока? "код в студию"

а что тут странного? вот, обычное обращение...

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
if (Ex_Operator->Ardo1IPPort->Connected && Ex_Operator->Ardo1Memo->Lines->Count > 0)
		{
			String jh = Ex_Operator->Ardo1Memo->Lines->Strings[0].Trim();
			Ex_Operator->Shape7->Brush->Color = clYellow;
			Ex_Operator->Shape7->Repaint();
			int y = jh.Pos("/");
			if (y == 0) {
				return;
			}

			int Cmd = StrToInt(jh.SubString(0, y - 1));
			int Cmd2 = StrToInt(jh.SubString(y + 1, jh.Length() - y));
			char OutData[3];
			OutData[0] = Cmd;
			OutData[1] = Cmd2;
			OutData[2] = 0;
			try
			{
				//Sleep(50);
				//Ex_Operator->PingVesy1->PingHost(Ex_Operator->Ardo1IPPort->RemoteHost);
				//Sleep(50);
				Ex_Operator->Ardo1IPPort->SetDataToSend(OutData, 3);
				Sleep(20);
				/*String j1h = Now();
				Ex_Operator->Ardo1Memo2->Lines->Add(j1h + " отправил " + Ex_Operator->Ardo1Memo->Lines->Strings[0]);*/
				Ex_Operator->Shape7->Brush->Color = clGreen;
				Ex_Operator->Shape7->Repaint();

			}
			catch(Exception &e)
			{

				Ex_Operator->Prn1Err->Caption = "Ошибка отправки в УУВ ";

				Ex_Operator->Prn1ErrClear->Enabled = true;
				Ex_Operator->Shape7->Hint = e.ToString() + "/" + e.UnitName() + "/" + e.Message;
				Ex_Operator->Shape7->Brush->Color = clRed;
				Ex_Operator->Shape7->Repaint();
				if (Ex_Operator->Ardo1IPPort->Connected)
					Ex_Operator->Ardo1IPPort->Disconnect();
				Sleep(100);
			}

		}
		else
		{
			Ex_Operator->Shape7-
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107183
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vizit0r
TMemo из потока? Это уже начинает радовать.

не открывается ссылка
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107194
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73,
Мягко говоря, не стоит лезть из потока к визуальным комронентам таким образом.
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107195
northener
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mizer73
Dimitry Sibiryakov
пропущено...

Синхронные функции не возвращаются до выполнения операции - не работает цикл
выборки сообщений - зависон. Разве это не очевидно?..


нет, не очевидно. так как синхронно могут происходить разные вещи, в том числе и те, которые не ждут друг от друга результата.

у меня, как раз, и есть тот случай, когда нигде и ни что не завязано на ожидание результата.

Вы бы код привели, который в основном потоке получает/читает что-то от внешнего устройства. Тогда бы я или кто-то другой смогли бы вас ткнуть носом в то место, где у вас проблема. А без кода смысла что-то обсуждать нет никакого.
А пока только от вас скажем так "странные" заявления типа синхронно могут происходить разные вещи, в том числе и те, которые не ждут друг от друга результата.
Как это понимать?
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107208
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
String - сложная штука. Перед указателем лежит размер, после всего - ноль. А когда начинают в такой тип писать/читать из разных потоков.... Ну... Удачи!
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107215
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mizer73,

три простых правила для начинающего многопоточника:
1. Никаких synchronize
2. Никаких Application.ProcessMessages
3. Никаких обращений к визуальной части из других потоков

Самое простое общение между основным и доп.потоком - через сообщения PostMessage.
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107226
Zelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первое правило Бойцовского клуба VCL - с ним работает только главный поток!
...
Рейтинг: 0 / 0
виснет экранная форма
    #40107227
Mizer73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman
Mizer73,

три простых правила для начинающего многопоточника:
1. Никаких synchronize
2. Никаких Application.ProcessMessages
3. Никаких обращений к визуальной части из других потоков

Самое простое общение между основным и доп.потоком - через сообщения PostMessage.


по-быстрому ничего не нашел про postmessage/
а какие еще варианты есть?
...
Рейтинг: 0 / 0
25 сообщений из 155, страница 2 из 7
Форумы / Delphi [игнор отключен] [закрыт для гостей] / виснет экранная форма
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]