private void Execute(Action <object, MessageBusEvent> Action, object Sender, MessageBusEvent Evnt) { Task.Factory.StartNew(() => { Action(Sender, Evnt); }, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default); }
/// <summary> /// Messages the bus event handler. /// </summary> /// <param name="sender">Sender.</param> /// <param name="evnt">Evnt.</param> public void MessageBusEventHandler(object sender, MessageBusEvent evnt) { //extrac the data var data2 = evnt.Data [0] as String; //execute on the UI thread BeginInvokeOnMainThread (() => { //post to the output box txtOutput.Text += data2 + Environment.NewLine; }); }
/// <summary> /// Posts the sticky event. /// </summary> /// <param name="Event">The event object</param> public void PostSticky(MessageBusEvent Event) { lock (mStickyEvents) { if (mStickyEvents.ContainsKey(Event.EventId)) { mStickyEvents.Remove(Event.EventId); } mStickyEvents.Add(Event.EventId, Event); } Post(Event); }
/// <summary> /// Customs the message event handler. /// </summary> /// <param name="sender">Sender.</param> /// <param name="evnt">Evnt.</param> public void CustomMessageEventHandler(object sender, MessageBusEvent evnt) { if (evnt is CustomMessageBusEvent) { //convert to customer event type var custEvent = evnt as CustomMessageBusEvent; //execute on the UI thread BeginInvokeOnMainThread (() => { //post to the output box txtOutput.Text += String.Format ("Custom Event Timestamp: {0}", custEvent.TimeStamp) + Environment.NewLine; }); } }
void postStickyAfterRegistation(MessageBusEventHandler EventHandler) { MessageBusEvent eventToBePosted = null; lock (mStickyEvents) { if (mStickyEvents.ContainsKey(EventHandler.EventId)) { // consider using this: // Execute(EventHandler.EventAction, this, mStickyEvents[EventHandler.EventId]); eventToBePosted = mStickyEvents[EventHandler.EventId]; } } if (eventToBePosted != null) { EventHandler.EventAction(this, eventToBePosted); } }
/// <summary> /// Posts the even /// </summary> /// <param name="Event">The event object</param> public void Post(MessageBusEvent Event) { if (!(Event is CoreMessageBusEvent)) { foreach (var item in EventHandlers.HandlersForEvent(Event.GetType())) { if (item.EventAction != null) { Execute(item.EventAction, Event.Sender, Event); } } } //find all the registered handlers foreach (var item in EventHandlers.HandlersForEvent(Event.EventId)) { if (item.EventAction != null) { Execute(item.EventAction, Event.Sender, Event); } } }
/// <summary> /// Customs the message event handler. /// </summary> /// <param name="sender">Sender.</param> /// <param name="evnt">Evnt.</param> public void CustomMessageEventHandler (object sender, MessageBusEvent evnt) { if (evnt is CustomMessageBusEvent) { BeginInvokeOnMainThread (() => { //convert to customer event type var custEvent = evnt as CustomMessageBusEvent; var aString = txtOutput.TextStorage.Value; aString += String.Format ("Custom Event Timestamp: {0}", custEvent.TimeStamp) + Environment.NewLine; txtOutput.TextStorage.SetString(new NSAttributedString(aString)); }); } }
/// <summary> /// Messages the bus event handler. /// </summary> /// <param name="sender">Sender.</param> /// <param name="evnt">Evnt.</param> public void MessageBusEventHandler (object sender, MessageBusEvent evnt) { //extrac the data var data2 = evnt.Data [0] as String; //execute on the UI thread BeginInvokeOnMainThread (() => { //post to the output box var aString = txtOutput.TextStorage.Value; aString += data2 + Environment.NewLine; txtOutput.TextStorage.SetString(new NSAttributedString(aString)); }); }
/// <summary> /// Post the specified Event to the Default MessageBus /// </summary> /// <param name="Event">Event.</param> public static void PostEvent(MessageBusEvent Event) { Default.Post(Event); }
private static void Execute(Action <object, MessageBusEvent> action, object sender, MessageBusEvent evnt) { action(sender, evnt); }
private void Execute(Action <object, MessageBusEvent> Action, object Sender, MessageBusEvent Evnt) { Action(Sender, Evnt); }
/// <summary> /// Messages the bus event handler. /// </summary> /// <param name="sender">Sender.</param> /// <param name="evnt">Evnt.</param> public void MessageBusEventHandler (object sender, MessageBusEvent evnt) { //extrac the data var data2 = evnt.Data [0] as String; //run on the ui thread RunOnUiThread (() => { //post to the output box txtOutput.Text += data2 + System.Environment.NewLine; }); }
/// <summary> /// Customs the message event handler. /// </summary> /// <param name="sender">Sender.</param> /// <param name="evnt">Evnt.</param> public void CustomMessageEventHandler (object sender, MessageBusEvent evnt) { if (evnt is CustomMessageBusEvent) { //convert to customer event type var custEvent = evnt as CustomMessageBusEvent; //run on the ui thread RunOnUiThread (() => { //post to the output box txtOutput.Text += String.Format ("Custom Event Timestamp: {0}", custEvent.TimeStamp) + System.Environment.NewLine; }); } }