public void CancelRefresh()
{
ThrowIfDisposed();
lock (m_lock)
{
if (m_refreshQueue == null)
{
throw ComUtils.CreateComException(ResultIds.E_FAIL);
}
m_refreshQueue = null;
// send an empty callback.
ThreadPool.QueueUserWorkItem(DoRefresh, null);
// turn off publishing when done.
if (!Active)
{
m_subscription.SetPublishingMode(false);
List<MonitoredItem> itemsToUpdate = new List<MonitoredItem>(m_notifiers.Values);
m_subscription.SetMonitoringMode(MonitoringMode.Disabled, itemsToUpdate);
}
}
}
#endregion