public void IChangeToken_ConfigurationReloadToken_OnChange() { var isChangeCallbackInvoke = false; IChangeToken token = new ConfigurationReloadToken(); token.RegisterChangeCallback(o => isChangeCallbackInvoke = true, null); Assert.False(token.HasChanged); Assert.False(isChangeCallbackInvoke); ((ConfigurationReloadToken)token).OnReload(); Assert.True(token.HasChanged); Assert.True(isChangeCallbackInvoke); }
public void IChangeToken_ConfigurationReloadToken_CallCancleAgain() { var token = new ConfigurationReloadToken(); var isCallbackInvoked = false; token.RegisterChangeCallback(o => isCallbackInvoked = true, null); token.OnReload(); Wait(); Assert.True(isCallbackInvoked); Assert.True(token.HasChanged); isCallbackInvoked = false; var isCallbackInvokedAgain = false; token.RegisterChangeCallback(o => isCallbackInvokedAgain = true, null); Assert.True(token.HasChanged); Wait(); token.OnReload(); // 还是会调用第二次 Assert.True(isCallbackInvokedAgain); // 新注册的回调还是会调用的 Assert.True(isCallbackInvokedAgain); }