コード例 #1
0
        public void WriteLine(string text)
        {
            text = string.Format("{0} {1}", "{" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "}", text);

            if (BroadcastingEvent != null)
            {
                BroadcastingEventHandler broadcastingEventHandler = null;

                //记录事件订阅者委托的索引,为方便标识,从1开始。
                int index = 1;

                foreach (Delegate delegateObject in BroadcastingEvent.GetInvocationList())
                {
                    try
                    {
                        broadcastingEventHandler = (BroadcastingEventHandler)delegateObject;
                        broadcastingEventHandler(text);
                    }
                    catch
                    {
                        Console.WriteLine("事件订阅者【{0}】发生错误,系统将取消事件订阅!", index);

                        BroadcastingEvent -= broadcastingEventHandler;
                    }

                    index++;
                }
            }
            else
            {
                // MessageBox.Show("事件未被订阅或订阅发生错误!");
            }

            Console.WriteLine(text);
        }