2012-03-09 3 views
2

У меня есть сеанс для основного потока в моем приложении, и у этого сеанса есть ценные данные внутри него, к которым я хочу получить доступ. Обычно я просто получаю сеанс, используя метод TDSSessionManager.GetThreadSession, но сейчас мне нужно получить доступ к этому сеансу, когда вне основной темы.Получение сеанса из его данных

Я думал о том, что, возможно, получил свою сессию, как-то ссылаясь на некоторые данные внутри нее, но я понятия не имею, как это сделать. Есть ли способ получить сеанс от чего-то другого, кроме потока, в котором вы находитесь?

ответ

2

Предполагая, что вы используете последнюю версию Delphi, вы можете использовать Rtti, чтобы иметь ссылку на нее. TDSSessionManager реализует singleton, и это облегчит вашу работу.

+0

Как недавний может быть версия Дельфи? (2010 и более поздние? Или даже раньше?) – Zeina

+0

От Delphi 2010 года. – menjaraz

+0

Я использую Delphi XE2. Я хотел бы получить более подробный ответ. Как именно я бы на это ссылался? – bpromas

0

Вы можете прокручивать сеансы, используя TDSSessionManager. Instance

TDSSessionManager.Instance.ForEachSession 
    (
    procedure(const Session: TDSSession) 
    begin 
     if Session.HasData('User') then begin 
     Listbox1.AddItem(Session.GetData('User'),Session); 
     end; 
    end 
); 
Смежные вопросы