Fork me on GitHub
OEA框架学习:多线程
一、摘要

        由于工作需要,就想着把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/

http://www.cnblogs.com/zhoujg/tag/OpenExpressApp/

image

四、2.0 版本 的多线程

其实修改的地方很少就是 把c# lambda表达式换成C# 2.0 等同的代码 如:

4N7LCAJX2RG6)GA`IU`TKYF

还需要建立一个委托 ”public delegate void Action (); ”  因为在2.0 中没有这个委托 如下对比图。

Q$R]CV45CGA}01COT6K%GJK

WSX)(PTV}87GS{`0VYWOW8F

代码全貌。

image 

使用示例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

 

 

直接下载源码看了。

btn_download

作者:罗敏贵
邮箱:minguiluo@gmail.com
QQ群:34178394 建群 主要是寻找志同道合的人士一起学习和讨论自己的所学所思
出处:http://luomingui.cnblogs.com/
说明:专注于微软平台项目架构、熟悉设计模式、架构设计、敏捷个人和项目管理。现主要从事WinForm、ASP.NET、等方面的项目开发、架构、管理工作。文章为作者平时里的思考和练习,可能有不当之处,请博客园的园友们多提宝贵意见。
知识共享许可协议本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。

posted on 2012-06-12 13:59  HackerVirus  阅读(226)  评论(0编辑  收藏  举报