public CallInBackgroundArguments(object subscriber, object sender, EventArgs eventArgs, IDelegateWrapper delegateWrapper) { this.Subscriber = subscriber; this.Sender = sender; this.EventArgs = eventArgs; this.DelegateWrapper = delegateWrapper; }
public CallInBackgroundArguments(object subscriber, object sender, EventArgs eventArgs, IDelegateWrapper delegateWrapper) { this.Subscriber = subscriber; this.Sender = sender; this.EventArgs = eventArgs; this.DelegateWrapper = delegateWrapper; }
private Delegate GetWrappedDelegate(Delegate delegateInstance) { if (delegateInstance != null && delegateInstance.Target is IDelegateWrapper) { IDelegateWrapper wrapper = delegateInstance.Target as IDelegateWrapper; return(GetWrappedDelegate(wrapper.WrappedDeleage)); } return(delegateInstance); }
public override void Handle(IEventTopicInfo eventTopic, object subscriber, object sender, EventArgs e, IDelegateWrapper delegateWrapper) { if (this.RunningOnUserInterfaceThread()) { this.CallWithoutThreadSwitch(eventTopic, subscriber, delegateWrapper, sender, e); } else { this.CallWithThreadSwitch(eventTopic, subscriber, delegateWrapper, sender, e); } }
private void CallWithoutThreadSwitch(IEventTopicInfo eventTopic, object subscriber, IDelegateWrapper delegateWrapper, object sender, EventArgs e) { try { delegateWrapper.Invoke(subscriber, sender, e); } catch (TargetInvocationException exception) { this.HandleSubscriberMethodException(exception, eventTopic); } }
public void Handle(IEventTopicInfo eventTopic, object subscriber, object sender, EventArgs e, IDelegateWrapper delegateWrapper) { IEventScopeRegistry registry = this.scopeHolder.Current; if (registry != null) { registry.Register(() => this.handler.Handle(eventTopic, subscriber, sender, e, delegateWrapper)); } else { this.handler.Handle(eventTopic, subscriber, sender, e, delegateWrapper); } }
public override void Handle(IEventTopicInfo eventTopic, object subscriber, object sender, EventArgs e, IDelegateWrapper delegateWrapper) { Ensure.ArgumentNotNull(delegateWrapper, "delegateWrapper"); try { delegateWrapper.Invoke(subscriber, sender, e); } catch (TargetInvocationException ex) { this.HandleSubscriberMethodException(ex, eventTopic); } }
public override void Handle(IEventTopicInfo eventTopic, object subscriber, object sender, EventArgs e, IDelegateWrapper delegateWrapper) { this.syncContextHolder.SyncContext.Post( delegate(object data) { try { ((IDelegateWrapper)data).Invoke(subscriber, sender, e); } catch (TargetInvocationException exception) { this.HandleSubscriberMethodException(exception, eventTopic); } }, delegateWrapper); }
public override void Handle(IEventTopicInfo eventTopic, object subscriber, object sender, EventArgs e, IDelegateWrapper delegateWrapper) { ThreadPool.QueueUserWorkItem( delegate(object state) { try { var args = (CallInBackgroundArguments)state; args.DelegateWrapper.Invoke(args.Subscriber, args.Sender, args.EventArgs); } catch (TargetInvocationException exception) { this.HandleSubscriberMethodException(exception, eventTopic); } }, new CallInBackgroundArguments(subscriber, sender, e, delegateWrapper)); }
public static TReturn RunInAppDomain <TReturn>(IDelegateWrapper <TReturn> func, AppDomain appDomain) { AppDomain domain = appDomain; domain.SetData(name: ToInvoke, data: func); domain.DoCallBack(() => { var delegateWrapper = AppDomain.CurrentDomain.GetData(ToInvoke) as IDelegateWrapper <TReturn>; if (delegateWrapper == null) { throw new ArgumentNullException(nameof(func)); } AppDomain.CurrentDomain.SetData(Result, delegateWrapper.Run()); }); return((TReturn)domain.GetData(Result)); }
public override void Handle(IEventTopicInfo eventTopic, object subscriber, object sender, EventArgs e, IDelegateWrapper delegateWrapper) { Ensure.ArgumentNotNull(delegateWrapper, "delegateWrapper"); try { delegateWrapper.Invoke(subscriber, sender, e); } catch (TargetInvocationException ex) { this.HandleSubscriberMethodException(ex, eventTopic); } }
private void CallWithThreadSwitch(IEventTopicInfo eventTopic, object subscriber, IDelegateWrapper delegateWrapper, object sender, EventArgs e) { this.syncContextHolder.SyncContext.Send( delegate(object data) { try { ((IDelegateWrapper)data).Invoke(subscriber, sender, e); } catch (TargetInvocationException exception) { this.HandleSubscriberMethodException(exception, eventTopic); } }, delegateWrapper); }
private void CallWithoutThreadSwitch(IEventTopicInfo eventTopic, object subscriber, IDelegateWrapper delegateWrapper, object sender, EventArgs e) { try { delegateWrapper.Invoke(subscriber, sender, e); } catch (TargetInvocationException exception) { this.HandleSubscriberMethodException(exception, eventTopic); } }
public override void Handle(IEventTopicInfo eventTopic, object subscriber, object sender, EventArgs e, IDelegateWrapper delegateWrapper) { if (this.RunningOnUserInterfaceThread()) { this.CallWithoutThreadSwitch(eventTopic, subscriber, delegateWrapper, sender, e); } else { this.CallWithThreadSwitch(eventTopic, subscriber, delegateWrapper, sender, e); } }
public override void Handle(IEventTopicInfo eventTopic, object subscriber, object sender, EventArgs e, IDelegateWrapper delegateWrapper) { Guard.AgainstNullArgument(nameof(delegateWrapper), delegateWrapper); try { delegateWrapper.Invoke(subscriber, sender, e); } catch (TargetInvocationException ex) { this.HandleSubscriberMethodException(ex, eventTopic); } }
public override void Handle(IEventTopicInfo eventTopic, object subscriber, object sender, EventArgs e, IDelegateWrapper delegateWrapper) { ThreadPool.QueueUserWorkItem( delegate(object state) { try { var args = (CallInBackgroundArguments)state; args.DelegateWrapper.Invoke(args.Subscriber, args.Sender, args.EventArgs); } catch (TargetInvocationException exception) { this.HandleSubscriberMethodException(exception, eventTopic); } }, new CallInBackgroundArguments(subscriber, sender, e, delegateWrapper)); }
private void CallWithThreadSwitch(IEventTopicInfo eventTopic, object subscriber, IDelegateWrapper delegateWrapper, object sender, EventArgs e) { this.syncContextHolder.SyncContext.Send( delegate(object data) { try { ((IDelegateWrapper)data).Invoke(subscriber, sender, e); } catch (TargetInvocationException exception) { this.HandleSubscriberMethodException(exception, eventTopic); } }, delegateWrapper); }
public abstract void Handle(IEventTopicInfo eventTopic, object subscriber, object sender, EventArgs e, IDelegateWrapper delegateWrapper);
public abstract void Handle(IEventTopicInfo eventTopic, object subscriber, object sender, EventArgs e, IDelegateWrapper delegateWrapper);
public void Handle(IEventTopicInfo eventTopic, object subscriber, object sender, EventArgs e, IDelegateWrapper delegateWrapper) { this.handler.Handle(eventTopic, subscriber, sender, e, delegateWrapper); }
public override void Handle(IEventTopicInfo eventTopic, object subscriber, object sender, EventArgs e, IDelegateWrapper delegateWrapper) { this.syncContextHolder.SyncContext.Post( delegate(object data) { try { ((IDelegateWrapper)data).Invoke(subscriber, sender, e); } catch (TargetInvocationException exception) { this.HandleSubscriberMethodException(exception, eventTopic); } }, delegateWrapper); }
public void Handle(IEventTopicInfo eventTopic, object subscriber, object sender, EventArgs e, IDelegateWrapper delegateWrapper) { IEventScopeRegistry registry = this.scopeHolder.Current; if (registry != null) { registry.Register(() => this.handler.Handle(eventTopic, subscriber, sender, e, delegateWrapper)); } else { this.handler.Handle(eventTopic, subscriber, sender, e, delegateWrapper); } }