/// <summary> /// 解绑事件 /// </summary> /// <param name="handle"></param> public void Unhook(ValidEventHandler handle) { lock (_syncObject) { _handles.Remove(handle); } }
/// <summary> /// 挂载事件,事件一旦被挂载,会自动触发历史事件,这样就不会因为之前成员的上下线在新的界面中没有被捕获 /// </summary> /// <param name="handle"></param> public void Hook(ValidEventHandler handle) { lock (_syncObject) { _handles.Add(handle); //将处理器收集起来 //根据已触发的事件参数,执行处理器的方法 foreach (var arg in _args) { ActionPipeline.Default.Queue(() => { handle(this, arg); }); } } }
public static void UnhookParticipantChanged(ValidEventHandler handle) { _participantTrigger.Unhook(handle); }