Гость
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / ремотинг: как сохранить жизнь объекту? / 4 сообщений из 4, страница 1 из 1
03.04.2008, 16:49
    #35233598
Анатолий Иванов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ремотинг: как сохранить жизнь объекту?
Такой вот вопрос: как сделать, чтобы создаваемые ремотные объекты убивались, когда выходят из области видимости в клиенте, но не убивались, если на них все еще есть ссылки в клиенте?
...
Рейтинг: 0 / 0
03.04.2008, 17:03
    #35233670
maybeleo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ремотинг: как сохранить жизнь объекту?
Анатолий ИвановТакой вот вопрос: как сделать, чтобы создаваемые ремотные объекты убивались, когда выходят из области видимости в клиенте, но не убивались, если на них все еще есть ссылки в клиенте?Никак. Можно только явно управлять временем жизни - с помощью спонсора, либо вообще сделать их вечно молодыми - в перекрытом InitializeLifetimeService вернуть null.
...
Рейтинг: 0 / 0
03.04.2008, 17:21
    #35233743
Анатолий Иванов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ремотинг: как сохранить жизнь объекту?
maybeleoНикак. Можно только явно управлять временем жизни - с помощью спонсора, либо вообще сделать их вечно молодыми - в перекрытом InitializeLifetimeService вернуть null.
Явно управлять каждым - не оптимально и чревато ошибками, например, неотписки объекта от спонсора. Вечномолодым сделать - приложение-сервер загнется (не хватит памяти).
...
Рейтинг: 0 / 0
03.04.2008, 17:35
    #35233805
maybeleo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ремотинг: как сохранить жизнь объекту?
Анатолий ИвановЯвно управлять каждым - не оптимально и чревато ошибками, например, неотписки объекта от спонсора. Вечномолодым сделать - приложение-сервер загнется (не хватит памяти).А никто и не обещал, что с ремотингом все будет просто. В принципе, можно попробовать сделать следующий костыль - объект, в котором будет ссылка на ISponsor и соответствующую ILease. Прикрутить к нему для надежности IDisposable, чтобы можно было явно отписывать спонсора. В финализаторе этого объекта также предусмотреть отписку спонсора, если это не было сделано явно в Dispose. Спонсор должен просто все время продлевать жизнь своему подопытному MBRу. Тогда получится такая петрушка - пока сей описываемый объект-костыль жив, работает спонсор для MBR, он тоже живет. Как только костылю сделали Dispose, или не сделали, но до него добрался GC, отпишется спонсор, и MBR тоже склеит ласты. Боюсь только, что граблей на этом пути не оберешься.
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / ремотинг: как сохранить жизнь объекту? / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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