惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
Google DeepMind News
Google DeepMind News
腾讯CDC
G
Google Developers Blog
Martin Fowler
Martin Fowler
Microsoft Security Blog
Microsoft Security Blog
Recent Announcements
Recent Announcements
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
有赞技术团队
有赞技术团队
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
M
MIT News - Artificial intelligence
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
美团技术团队
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志

博客园 - 超薄

符号执行虚假控制流去混淆 ios 重启usb ubuntu 搜狗输入法安装 js 反hook js 源码乱码 js和html加上混淆 js 字体加密 jj混淆 webpack 暴力方式扣取 志远js调试相关 并行算法中的异常 扩展属性应用 位运算应用口诀和实例(转自大笨狼) 数据结构实际应用----订单排序(堆排序求前N大) 数据结构Tire 树实际应用----过滤禁词 动态规划 快速排序算法 字典 DictionaryBase 和 SortedList 模式匹配文本处理 位运算
事件模式实现通知
超薄 · 2012-04-04 · via 博客园 - 超薄
class LoggerClass
{
}
public class LoggerEventArgs : EventArgs
{
public string Message { get; private set; }
public int Priority { get; private set; }
public LoggerEventArgs(int priority,string msg)
{
Priority = priority;
Message = msg;

}

}
public static struct LogerEventName
{
public static readonly string OnError = "OnError";
public static readonly string OnFail = "OnFail";
public static readonly string OnWaring = "OnWaring";

}

public sealed class Logger
{
private static Dictionary<string, EventHandler<LoggerEventArgs>> Handers = new Dictionary<string, EventHandler<LoggerEventArgs>>();
public static void AddLoger(string system,EventHandler<LoggerEventArgs> ev)
{
if (Handers.ContainsKey(system))
{
Handers[system] += ev;
}
else
{
Handers.Add(system,ev);
}
}
public static void RemoveLogger(string system,EventHandler<LoggerEventArgs> ev)
{
if (Handers.ContainsKey(system))
{
Handers[system] -= ev;
}
}

public static void AddMsg(string sytem,int priority,string msg)
{
if (string.IsNullOrEmpty(sytem) || !Handers.ContainsKey(sytem))
return;
LoggerEventArgs args = new LoggerEventArgs(priority,msg);
EventHandler<LoggerEventArgs> eventthander = null;
Handers.TryGetValue(sytem, out eventthander);
if (eventthander != null)
eventthander(null, args);
}
}