一、摘要
由于工作需要,就想着把OEA里的多线程提取出来,但OEA 是4.0 的产物,看了一下代码 OEA里的多线程用的是3.0的技术,有戏就想着翻译成2.0的了 :) 我们还在2.0上挣扎着,贴出来也是为了以后可能还会用到,做个备份了,和我一样还在2.0 上挣扎的童鞋有救了¥@……¥*%)。
二、本文大纲
a、摘要 。
b、OEA 多线程 。
c、2.0 版本 的多线程 。
三、OEA 多线程
OEA 多线程的代码被作者放在哪呢,就在OEA 主项目中的Utils中看下图,代码大家可以到可以到BloodyAngel的博客和中可以得到,另附上源码下载地址:OEA框架 2.9 Pre-Alpha 源码公布 对OEA感兴趣的可以看看下面的博客
http://www.cnblogs.com/luomingui/tag/OEA/
http://www.cnblogs.com/zgynhqf/tag/OEA/
四、2.0 版本 的多线程
其实修改的地方很少就是 把c# lambda表达式换成C# 2.0 等同的代码 如:
还需要建立一个委托 ”public delegate void Action (); ” 因为在2.0 中没有这个委托 如下对比图。
代码全貌。
使用示例1:
ThreadHelper.AsyncMultiActions.Execute(delegate {
DealInfo(handler, receivedData);
});使用示例2:
#region 异步加载数据的关系
//[NonSerialized]
//private ForeAsyncLoader _relationLoader;///// <summary>
///// 如果是树,则异步整理数据。
/////
///// 由于本类的操作都要用到树的关系,但是建立这个关系需要一定时间,所以这里采用异步模式。
///// </summary>
//public ForeAsyncLoader RelationLoader
//{
// get
// {
// if (this._relationLoader == null)
// {
// this._relationLoader = new ForeAsyncLoader(this.LoadRelation);
// }
// return this._relationLoader;
// }
//}//private void LoadRelation()
//{
// var treeList = this._displayList as IOrderedTreeNodeCollection;
// if (treeList != null)
// {
// treeList.EnsureObjectRelations();
// }
//}#endregion
直接下载源码看了。
作者:罗敏贵
邮箱:minguiluo@gmail.com
QQ群:34178394 建群 主要是寻找志同道合的人士一起学习和讨论自己的所学所思
出处:http://luomingui.cnblogs.com/
说明:专注于微软平台项目架构、熟悉设计模式、架构设计、敏捷个人和项目管理。现主要从事WinForm、ASP.NET、等方面的项目开发、架构、管理工作。文章为作者平时里的思考和练习,可能有不当之处,请博客园的园友们多提宝贵意见。
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。