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

推荐订阅源

人人都是产品经理
人人都是产品经理
Apple Machine Learning Research
Apple Machine Learning Research
云风的 BLOG
云风的 BLOG
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
量子位
GbyAI
GbyAI
腾讯CDC
T
Tailwind CSS Blog
博客园 - Franky
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
D
Docker
G
Google Developers Blog
aimingoo的专栏
aimingoo的专栏
The GitHub Blog
The GitHub Blog
Microsoft Security Blog
Microsoft Security Blog
Stack Overflow Blog
Stack Overflow Blog
Hugging Face - Blog
Hugging Face - Blog
小众软件
小众软件
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
N
Netflix TechBlog - Medium
Jina AI
Jina AI
IT之家
IT之家
Y
Y Combinator Blog

博客园 - 超薄

符号执行虚假控制流去混淆 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);
}
}