public void ConditionRefresh(OperationContext context, uint subscriptionId)
{
Subscription subscription = null;
lock (m_lock)
{
if (!m_subscriptions.TryGetValue(subscriptionId, out subscription))
{
throw ServiceResultException.Create(
StatusCodes.BadSubscriptionIdInvalid,
"Cannot refresh conditions for a subscription that does not exist.");
}
}
// ensure a condition refresh is allowed.
subscription.ValidateConditionRefresh(context);
// do the actual refresh in the background.
ThreadPool.QueueUserWorkItem(DoConditionRefresh, subscription);
}