byjk Posted December 29, 2015 Share Posted December 29, 2015 Можно ли как ни будь связать сервер uniGUI с com-объектом? я попробовал создавать com объект в TUniMainModule: TUniMainModule = class(TUniGUIMainModule) COMConnection: TDCOMConnection; private ComServer: OleVariant; ..... procedure TUniMainModule.SomeInit; begin CoInitialize(nil); COMConnection.Connected := true; ComServer := COMConnection.GetServer; ComServer.Somefunction().... .... end; При таком раскладе я ожидал что переменная ComServer будет содержать ссылку на com-объект и я смогу его вызывать при следующих вызовах, но это не так - сам ком-объект сразу освобождается после обработки веб-запроса - почему? можно ли как либо хранить ссылки на ком-объекты в сессии? Link to comment Share on other sites More sharing options...
rgreat Posted December 30, 2015 Share Posted December 30, 2015 Не, так с сом-ом не выйдет. Для каждого эвента в unigui создается отдельный поток. Причем одних и тех-же эвентов может одновременно в одной сессии выполняться несколько. Link to comment Share on other sites More sharing options...
rgreat Posted December 30, 2015 Share Posted December 30, 2015 Сделай отдельный закольцованый thread а в нем уже com объект и общайся через этот thread. Так com объект не сдохнет. Только сделай все thread-safe через блокировку или очередь. Link to comment Share on other sites More sharing options...
byjk Posted December 30, 2015 Author Share Posted December 30, 2015 Для каждого эвента в unigui создается отдельный поток. Судя по всему в этом собака зарыта... Спасибо Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now