public void ApplyChanges()
{
ThrowIfDisposed();
lock (m_lock)
{
if (m_subscription == null)
{
CreateSubscription();
}
else
{
ModifySubscription();
}
if (m_callbackTimer != null)
{
m_callbackTimer.Dispose();
m_callbackTimer = null;
}
if (Active)
{
// adjust keep alive to reflect current settings.
SetKeepAlive(KeepAlive);
// start a callabck thread.
m_callbackTimer = new Timer(DoProcessQueue, null, 0, (long)ActualBufferTime);
}
}
}