随笔分类 - C#
摘要:问题描述 我们最近在使用Redis作Session的集中化,中间碰到了一个如下问题:我们有一些项目比较老,引用了NewtonJson的4.0.3.0版本的DLL,但是Redis提供的C#集成DLL引用的是NewtonJson的7.0.0.0版本的DLL,但我们要在老项目中引用Redis集成DLL,因
阅读全文
摘要:一.非托管资源 在《垃圾回收算法之引用计数算法》、《垃圾回收算法之引用跟踪算法》和《垃圾回收算法之引用跟踪算法》这3篇文章中,我们介绍了垃圾回收的一些基本概念和原理,但需要说明的是:这些文章中,介绍的都是对托管资源的回收,所谓托管资源,直白一点,你可以理解为托管堆上分配的对象,它由GC来自动管理。
阅读全文
摘要:我们知道,垃圾回收在内存无限大的理想情况下是不需要的,正是因为内存存在的瓶颈,我们才需要垃圾回收。在《垃圾回收算法之引用计数算法》和《垃圾回收算法之引用跟踪算法》两篇文章中,我们了解了垃圾回收算法的基本原理,并介绍了两种垃圾回收算法。本篇是在垃圾回收的前提下,通过代的机制更进一步地提升程序的性能。
阅读全文
摘要:一.为什么需要优先级--线程调度的问题 在现实生活中,优先级是一个很常见的现象:在火车站,如果你是孕妇,你是可以走进站中的专门绿色通道的,可以提前上火车以免拥挤;火警119匪警110出警的时候,都是人命关天的大事,是可以优先使用道路的,行人和车辆一律避让;在银行,如果你是白金VIP,也会有专门的绿色
阅读全文
摘要:我们在《C#夯实基础之多线程一:初识多线程》一文中第二部分中指出,既然windows最终发展出了多线程模型,按理说,我们直接使用一个.NetFramework的线程类就可以直接撸代码了,但在这之前,我们还需要认识一下线程的一些基本特性,它们的出现并不是多余的,而是为了解决一部分问题出现的,毕竟存在即
阅读全文
摘要:一. 烧水沏茶问题 在小学四年级有一个烧水沏茶问题,可以作为我们今天讨论话题的引子: 客人来了,要烧一壶茶,但是烧水需要5分钟,洗水壶需要1分钟,洗茶杯需要2分钟,接水需要1分钟,找茶叶需要1分钟,沏茶需要1分钟,问如何使客人能最快地喝上茶? 这是一个简单的时间安排问题,我们来分析一下. 一杯茶需要
阅读全文
摘要:一. 接口的类型 接口是引用类型.因此从值类型赋值给接口是需要装箱的.如下所示: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 ISay catSay = new Cat(); 6 catSay.Say(); 7 Consol
阅读全文
摘要:一.错误描述 今天在帮同事Debug的时候遇到这个问题,错误信息提示到是Data Provider的问题,首先我们看下环境. 数据库版本:Oracle 11.2.0.4.0 64位 数据库服务器:linux 应用服务器:32位windows IIS:IIS7 .NetFramework:4.0 猜测
阅读全文
摘要:string作为我们在编程当中用的最多的数据类型,同时又由于它的特殊性,怎么强调它的重要性都不为过,理解string的一些类型和存储机制,有助于我们写出正确且高效的代码. 一.string类型 1.string的类型 string类型直接继承Object类型,Object类型是引用类型,因而stri
阅读全文
摘要:一.const与readonly的争议 你一定写过const,也一定用过readonly,但说起两者的区别,并说出何时用const,何时用readonly,你是否能清晰有条理地说出个一二三? const与readonly之所以有如此争议,是因为彼此都存在"不可改变"这一特性,对于二者而言,我们需要关
阅读全文
摘要:详细错误:HTTP 错误 404.2 - Not Found. 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面. 出现环境:win7 + IIS7.0 解决办法:IIS的根节点->右侧“ISAPI和CGI限制”->把禁止的DotNet版本项设置为允许 伪静态添
阅读全文
摘要:出现这个错误的原因是NET Framework 版本版本号不对应,iis和网站使用的一致版本就可以了。 出现这个错误的原因是NET Framework 版本版本号不对应,iis和网站使用的一致版本就可以了。 出现这个错误的原因是NET Framework 版本版本号不对应,iis和网站使用的一致版本
阅读全文
摘要:我们将ASP.NET程序从IIS6移植到IIS7,可能运行提示以下错误: HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。 为什么会出现以上错误? 在IIS7的应用程序池有两种模式,一种是“集成模式”,一种是“
阅读全文
摘要:问题说明: 我的项目组成: 主项目为:TaskUtlity 在生成解决方案的时候在TaskUtlity的bin目录下老是找不到ProBonus项目生成的dll. 解决方案: 1.打开sln文件,找到ProBonus项目的GUID. Project("{FAE04EC0-301F-11D3-BF4B-
阅读全文
摘要:调试项目遇到错误提示,Visual Studio 2010(或VS2008或VS2005)启动调试的时候,弹出提示信息: 生成下面的模块时,启用了优化或没有调试信息: C:\WINDOWS\Microsoft.NET\Frameword\v2.0.50727\Temporary ASP.NETFil
阅读全文
摘要:/// /// 将泛类型集合List类转换成DataTable /// /// 泛类型集合 /// public static DataTable ListToDataTable(List entitys) { //检查实体集合不能为空 if (entitys == null || entitys.Count ...
阅读全文
摘要:我们需要在XML与实体类,DataTable,List之间进行转换,下面是XmlUtil类,该类来自网络并稍加修改。 下面是测试代码: 1. 实体对象转换到Xml 2. Xml转换到实体对象 3. DataTable转换到Xml 4. Xml转换到DataTable 5. List转换到Xml 6.
阅读全文
摘要:.NetFramework的异步编程模型从本质上来说是使用线程池来完成异步的任务,异步委托、HttpWebRequest等都使用了异步模型。这里我们使用异步委托来说明异步编程模型。首先,我们来明确一下,对于多线程来说,我们需要关注哪些问题。“线程是一段执行中的代码流”,从这句话中,我们可以关注这段代...
阅读全文
摘要:一.进程与线程的定义 进程是执行中的程序:程序是一段描述指令的文本,是一个静态的概念,把这段指令运行起来,每次运行就得到了一个进程,进程是动态的概念;操作系统会为进程分配资源。 线程是进程中一段实际执行的代码:它也是一个动态的概念;操作系统调度和分派线程,为线程分配CPU时间片,使其执行。二.进...
阅读全文