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-объект и я смогу его вызывать при следующих вызовах, но это не так - сам ком-объект сразу освобождается после обработки веб-запроса - почему? можно ли как либо хранить ссылки на ком-объекты в сессии? Quote Link to comment Share on other sites More sharing options...
rgreat Posted December 30, 2015 Share Posted December 30, 2015 Не, так с сом-ом не выйдет. Для каждого эвента в unigui создается отдельный поток. Причем одних и тех-же эвентов может одновременно в одной сессии выполняться несколько. Quote 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 через блокировку или очередь. Quote Link to comment Share on other sites More sharing options...
byjk Posted December 30, 2015 Author Share Posted December 30, 2015 Для каждого эвента в unigui создается отдельный поток. Судя по всему в этом собака зарыта... Спасибо Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.