Fork me on GitHub

2013年3月5日

摘要: 支持多线程的日志记录类实现概述主要设计思想是通过一个共享队列,多个输入端能同时非阻塞式的向队列中增加记录信息,输出端能自动及时的把队列中的记录信息输出到控制台或是保存到文件及数据库中。多个输入端互相隔离,采用多线程实现,但考虑到缓存日志信息的是一个共享队列,自然涉及到线程间的同步问题。本文的实现模式是采用操作系统中很经典的生产者/消费者模式。线程间的同步是通过事件信号,同时对共享队列的修改进行加锁保护,避免多个线程同时修改队列。日志记录类实现整个实现除了主要的日志记录类,还要定义同步事件类封装用于线程间同步的事件对象,定义日志信息类用于生成日志信息能存于共享队列中。1. 同步事件类 SyncE 阅读全文
posted @ 2013-03-05 12:49 HackerVirus 阅读(448) 评论(0) 推荐(0)
摘要: mvc4 截取上传图片做头像,自动生成不同小尺寸缩略图多SNS网站,可以上传头像,微博也是一样,上传的头像经自由裁剪合适后,自动生成多种不同尺寸高质量清晰的,如大中小。效果如下:(下载链接在最下面)实现: 页面代码:<p class="phototxt">选择你要上传的头像</p> <div class="upfile"> @using (Html.BeginForm("uploadHead", "ucenter", FormMethod.Post, new { ID = &qu 阅读全文
posted @ 2013-03-05 12:48 HackerVirus 阅读(1369) 评论(1) 推荐(2)
摘要: OS之争:永不停歇的战争(一)不是专家和王垠不一样,和云风不一样,他们是大牛逼,而我只是个无名小卒。不是扫地僧,只是无名小卒。但是作为一个小卒,从看到王垠的《用Linux工作》开始,也有五六个年头了。实际上,我的计算机学习和编程几乎是同时开始的,这样算来,我也用了十三年的PC了。但是,对Mac,Linux和Windows仍然可以说是一无所知。但是王垠的态度,到了《漫谈Linux,Windows,Mac》有了90度的转折,而云风,则从C++的拥趸变成了坚实的反对者。不是我不明白,这世界变化快。然而即便是个别大牛的态度有所转变,也会有别的大牛前赴后继,赴汤蹈火。如今,我只是想作为一个局内的局外人, 阅读全文
posted @ 2013-03-05 12:47 HackerVirus 阅读(176) 评论(0) 推荐(0)
摘要: Windows 服务入门指南有很多时候,我们需要创建Windows Service。 这篇文章可以算是一个入门指南吧,希望对初学者有帮助.要创建Windows Service, 首先选择Windows服务项目,如下图:这里我想创建一个Windows服务,定时的执行一些任务。public partial class Service1 : ServiceBase{ public Service1() { InitializeComponent(); } protected override void OnStart(string[] args) { ... 阅读全文
posted @ 2013-03-05 12:46 HackerVirus 阅读(194) 评论(0) 推荐(0)
摘要: .NET开源压缩组件介绍与入门【资料限时发送】1.前言作为吉日嘎拉权限管理系统最早的一批学习版用户,学了不少东西,在群里面也结识了很多朋友,更重要的是闲余时间,大家都发布很多可靠的外包工作。这次也是由于吉日嘎拉发布了一个有关“压缩组件损坏检测”的外包任务,最早在2009年用C#很简单的使用过压缩组件,这次有了这个需求,才所以才深入研究一番,顺便有了这篇博客。在日常项目开发过程中,操作Zip或者RAR压缩文件也是一件比较常见的事情。主要是打包文件,解压文件等等常规的操作,也相信很多人也用过.NET自带的GZip压缩。今天要给大家介绍的是一些开源的压缩组件的一些简单入门,由于压缩格式很多,效率也不 阅读全文
posted @ 2013-03-05 12:45 HackerVirus 阅读(334) 评论(0) 推荐(0)
摘要: Web能够打下天下,最重要的功臣就是HTTP;HTTP能够建功立业,最重要的原因就是它的简单。微软在.NET Framework 4.5中为大家带来了System.Net.Http.HttpClient,既然叫HttpClient,我想应该迎合了HTTP简单的特性,应该会比HttpWebRequest更简单。在之前的博文“jQuery能做到,PHP能做到,C#也能做到”中也的确发现用HttpClient发起HTTP POST请求并传递url query string参数,比用HttpWebRequest更简单。于是打算把基于HttpWebRequest的实现改为基于HttpClient的实现。 阅读全文
posted @ 2013-03-05 10:57 HackerVirus 阅读(330) 评论(0) 推荐(0)

2013年3月4日

摘要: Spring.Net 如何管理您的类___自定义对象行为Spring.Net 一直讲求 ” 配置应用程序“,有一种需求在实际开发中不太常用,却非常有用 -> 配置对象的行为,Spring.Net 也能够完美的实现。Spring.Net 通过几个专门的接口来控制容器中对象的行为。比如说,我们可以自定义对象初始化行为,自定义对象销毁行为,抽象对象定义和子对象定义等。在下面会介绍常用的几中 自定义对象行为:①自定义对象初始化行为② 自定义对象销毁行为③ 抽象对象定义④ 子对象定义⑤ IObjectPostProcessor及扩展类(对象后处理器)一 . 自定义初始化行为和销毁行为 Spring 阅读全文
posted @ 2013-03-04 22:01 HackerVirus 阅读(216) 评论(0) 推荐(0)
摘要: 顺序表(线性表)操作的思想及实现之C#版?1234567891011121314151617publicintLocateElement(T item){if(this.intPointLast==-1){Console.WriteLine("there is no element in this linear list");return-1;}for(inti = 0; i <= this.intPointLast; i++){if(this.tItems[i].Equals(item))//若是自定义类型,则T类必须把Equals函数override{return 阅读全文
posted @ 2013-03-04 22:00 HackerVirus 阅读(165) 评论(0) 推荐(0)
摘要: 委托和事件委托和事件这两天重新温习了一下关于委托和事件方面的知识,总结一下。一.委托委托就是能够将方法作为变量来传递。C#中使用委托的具体步骤是:(1)委托的声明。其参数形式一定要和想要包含的方法的参数形式一致。委托可以在程序运行时调用不同的方法,只要这个方法签名和委托签名保持一致。格式:[修饰符] delegate 返回类型 委托号(参数列表)例如: public delegate void MyDelegate1(string input);//无返回值 有参数 public delegate double MyDelegate2();//无参数声明一个委托的对象,与声明一个普通类对象.. 阅读全文
posted @ 2013-03-04 21:58 HackerVirus 阅读(214) 评论(0) 推荐(0)
摘要: 使用HttpHanlder处理404: File not found一:场景出于某种理由,需要由asp.net引擎处理所有可能出现的无效URL的Request。二:现状对于无效URL,一般会由IIS返回404错误。当然,也可以自定义Custom Error Page,但是在这种情况下,并不能处理原URL所代表的Request的数据(如表单数据)。或许我们想直接在Application_BeginRequest中处理该请求,但是,如果我们的IIS已经处理了“Verify that file Exists”,则实际上该请求根本不会被Application_BeginRequest命中(Fire)。 阅读全文
posted @ 2013-03-04 15:53 HackerVirus 阅读(408) 评论(0) 推荐(0)