protected AsyncForm() { if (!this.DesignMode) { //抽象类会导致Vs设计器无法显示的问题... _showStateCallback = ShowCallbackMessage; AsyncFormEventBus.Register <AsyncFormMessageEvent>(UpdateUi); WithPrefix = true; } }
public static ILoggerFactory GetLoggerFactory() { var myLoggerFactory = new MyLoggerFactory(); myLoggerFactory.DefaultLogger.LogHelper.ShowMessage = s => { AsyncFormEventBus.Raise(new AsyncFormMessageEvent(s)); }; return(_logFactory ?? (_logFactory = myLoggerFactory)); }
//此方法会在非UI线程中被调用 private void UpdateUi(AsyncFormMessageEvent obj) { if (!AsyncFormEventBus.ShouldRaise()) { return; } string value = string.Format("{0} \r\n", obj.Message); if (WithPrefix) { value = obj.DateTimeEventOccurred + ": " + value; } var invoker = GetInvoker(); if (invoker.InvokeRequired) { invoker.Invoke(_showStateCallback, value); } else { _showStateCallback.Invoke(value); } }