public virtual void Unsubscribe(IDataHandler hand) { lock(_sync) { if( _sub.Handler == hand ) { _sub = null; } else { throw new Exception(String.Format("Handler: {0}, not subscribed", hand)); } } }