摘要: 最近做一个日志服务器,各个客户端通过log4net的RemotingAppender把日志发送到日志服务器做统一的存储,大部分实现都很简单,网上找找RemotingAppender的demo,重写服务端的log4net的Appender就可以实现,测试的时候发现一个问题,客户端循环4W条数据,每条间隔2ms执行记录日志,当客户端循环执行完毕的时候服务端才记录了将近两千条数据,这样子的结果完全是不能接受的。 请教老大,排查问题,最后发现通过log4net的RemotingAppender来记录日志它是一个顺序执行过程。只有等上一次记录成功下一次服务端才会继续记录。再次排查发现代码中有一个非... 阅读全文
posted @ 2013-07-31 23:04 sjR10 阅读(1111) 评论(6) 推荐(3) 编辑
摘要: 以前比较两个List数据,筛选出所需要的数据时候,一直套两层for循环来执行。用到去重(Distinct)的时候,这两个需求其实都是一样的,都是需要比较两个集合,查看了下它的源码,里面确实有值得借鉴的地方。先附上源码一直我调试的代码,大部分地方加上了注释 1 class Program 2 ... 阅读全文
posted @ 2014-07-25 17:45 sjR10 阅读(1114) 评论(3) 推荐(2) 编辑
摘要: 用EF做查询,写了一个基类,有一个通用的分页查询方法。public virtual ListViewResponseResult GetEntitys(int pageIndex, int pageSize, int fId, Expression> whereLambda, Expression> orderByLambda, bool isAsc){ .............. var temp = Repository.GetEntitysByFId(fId); if (whereLambda != null) { temp = temp... 阅读全文
posted @ 2014-03-26 20:34 sjR10 阅读(1097) 评论(0) 推荐(0) 编辑
摘要: 刚看CLR VIA C# 关于Parallel.ForEach讲解,依葫芦画瓢自己写了一个实例,功能实现了 ,但是不明白如何实现,看源码 看的一头雾水,求高人分析,能帮忙写个简单的内部实现过程废话不多说 直接上代码//通过for实现运算 private static long GetTotalCount(String[] strs) { long totalCount = 0; for (int i = 0; i (strs, () => 0, (str, loopState, index, length) => 6 { 7 ... 阅读全文
posted @ 2013-06-23 16:08 sjR10 阅读(2039) 评论(7) 推荐(0) 编辑
摘要: 今天工作遇到一个问题,在朋友帮助下解决了,写下来跟大家分享下。首先说下需求,有一个文本框,文本框下面有个隐藏的div,div中有几个a标签,当点击文本框时候,div显示出来,点击div中的a标签,会将a标签的值赋到文本框中。点击其他地方时候则隐藏div。如图 点击文本框,下面div显示点击a标签时候 a标签值赋到文本框中当点击外面时候div隐藏刚开始想的很简单,给文本框一个onblur跟onfoucs事件,分别对应着文本框的隐藏跟显示。a标签注册点击事件。<table> <tr> <td> </td> ... 阅读全文
posted @ 2013-01-10 23:55 sjR10 阅读(1218) 评论(3) 推荐(2) 编辑
摘要: 刚进一家公司,还在熟悉他们的代码,看到他们经常在for循环中执行数据的插入,修改以及删除操作,接触到Entity Framework时候,它里面有个SavaChange()方法,EF里面的执行数据库操作只有通过调用该方法才会真正的到数据库中执行。所以从中得到启发:我们也可以将Insert/Update/Delete操作批量进行执行,减少数据库访问次数,提高执行效率。 首先附上SqlHelper部分代码 private readonly static string conStr = ConfigurationManager.ConnectionStrings["sql"].C 阅读全文
posted @ 2012-10-28 11:11 sjR10 阅读(2037) 评论(18) 推荐(7) 编辑
摘要: 小弟第一次写文章,还请大侠亲拍指正。(蛋疼的Chrome崩溃了 重新发一遍) 我们通俗点讲委托就是在一个方法中挖了一个坑,这个坑留着调用该方法的时候来填坑(给该委托赋值),这样子就可以做到需求留着调用者来完成,实现代码重用。网上有个比较经典的例子,烧水的一个程序水到达一定的温度的时候,水壶可能鸣笛报警,可能停止烧水,或者其他的可能。这件事是制造水壶的人不可预知,所以在这里挖了一坑,留着谁调用该烧水程序的人来填坑。当你填上鸣笛报警,水温到那个温度的时候就会鸣笛报警,当你填上停止烧水,到那个温度的时候就会停止烧水(其实这地方用事件更好,这里面说只是方便理解)。、附上代码: 1 cla... 阅读全文
posted @ 2012-08-17 23:44 sjR10 阅读(651) 评论(3) 推荐(1) 编辑