У меня есть концептуальный вопрос о многопоточности:Работа с потоками с DCOM
в приложении с помощью RPC через DCOM, с многопоточной конфигурации, кухня объединена с основной формой замерзает.
1 - Если CriticalSession создается при инициализации устройства, код в критическом сеансе будет выполняться в контексте основного потока?
2 - Когда вы вызываете метод для выполнения задачи:
Тема 1 создана. (DCOM Thread)
Резьба 1 создает нить 2.
Тема 1 WaitFor Thread 2.
Резьба 2 создает 4 потока, чтобы быстрее выполнять задачу.
Резьба 2 петли спать 2 секунды до конца 4 потоков. В этих процессах основная форма должна быть обновлена, чтобы отобразить процент выполненных действий. Сообщение отправляется в основной поток формы с процентом, но ничего не происходит, и основная форма замораживается.
3 - Вместо синхронного() метода лучше всего синхронизировать внутри одного из 4 потоков, когда им нужно создать объекты CRUD (Create Read Update Delete) в Thread 2?
4 - 4 темы имеют более высокий приоритет, а основной поток - это проблема? Когда это станет проблемой?
Изображение ниже, представляют архитектуру системы:
Это nitpick, но я бы рекомендовал немного изменить теги, возможно, что-то вроде DCOM, а затем многопоточность, тогда остальное может не понадобиться, поскольку DCOM (теоретически) не выполняется на каком языке клиент и сервер используются. Если это что-то особенное для delphi, можете ли вы добавить дополнительную информацию об этом? Или это просто «вот язык, который я использую, если это имеет значение»? – jrh
@jrh это просто «вот язык, который я использую, если это имеет значение», что-то вроде – EProgrammerNotFound