Как сохранить / сохранить экземпляры Timer / Threads, работающие в службе WCF - PullRequest
1 голос
/ 10 марта 2010

Я пытаюсь создать простой сервис планировщика, который будет автоматически отправлять электронные письма и т. Д.

Пока у меня есть простой сервис WCF, в котором я создаю экземпляр таймера, устанавливаю обратный вызов и выполняю некоторую работу в обратном вызове. Теперь эта часть работает нормально, с вызовом обратного вызова и работой в нем, как и ожидалось.

Проблема в том, что мне нужно внести некоторые изменения в таймер, скажем, изменить интервал или, возможно, просто остановить его.

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

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

Так, как я могу получить тот экземпляр таймера / потока, который я фактически создал во время предыдущего вызова? Или я просто ошибаюсь?

1 Ответ

0 голосов
/ 18 августа 2011

Статика не так уж плоха для идеи здесь. Возможно, что static - это словарь, управляемый Guid, и Guid возвращается клиенту. Последующие клиентские вызовы используют параметр Guid, поэтому новые экземпляры вашей службы ищут таймер с помощью Guid.

...