摘要:
概述看源码是一件吃力又很爽的事情,昨天还被搞的一头雾水,今天忽然守得云开见月明。明白它设计意图的同时,感觉自己又提升了一步:)Orchard刚开始看往往毫无头绪,建议可以从Orchard.Framework&UnitTest入手,先弄明白底层框架机制,抽丝剥茧,一步一步农村包围城市。不用着急,说不定... 阅读全文
摘要:
AutoResetEvent和ManualResetEvent用于多线程之间代码执行顺序的控制,它们继承自WaitHandle,API相同,但在使用中还是有区别的。 每次使用时虽然理解了,但由于没有去深入思考记忆,过几天又忘记了。到下次需要使用的时候又要重新去理解这2个类。 今天再次遇到他们,写下这篇随笔。。加深理解印象。以后不用去纠结他们了。 1.构造函数参数 var manualResetE... 阅读全文
摘要:
系统中都用到过cache,但想要把cache模块做到完善却不是这么容易的。想到的地方高并发下的设计 (http://www.cnblogs.com/mushroom/p/4199701.html )缓存容器的扩展(HTTP缓存,本机缓存,分布式缓存),可以方便的切换共存。(http://www.cn... 阅读全文
摘要:
登录日志表CREATE TABLE [dbo].[LoginLog]([Seq] [int] NOT NULL IDENTITY(1, 1), --Seq[UserId] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL, --用户名[LoginTime] ... 阅读全文
摘要:
概述从缓存失效的几种方式开始了解Orchard缓存设计1.设置失效时间 Func retrieve = () => _cacheManager.Get("testItem", ctx => { ... 阅读全文
摘要:
概述IIS线程池中的线程数量是有限制的。当有多个长时间请求时,可能会耗尽IIS可用线程。出现503错误。在MVC中。当遇到非CPU操作的长时间请求时,MVC提供了异步方法来解决这个问题。例:利用async和await实现异步方法// GET: Async[AsyncTimeout(1000)]pub... 阅读全文