C#的Task和Java的Future
摘要:C#的Task和Java的Future自从项目中语言换成Java后就很久没有看C#了,但说实话我是身在曹营心在汉啊。早就知道.NET4.5新增了async和await但一直没有用过,今天看到这篇文章总算有了点了解,突然发现Task这个玩意不就是Java中Future这个概念吗?这里冒昧引用下Jesse Liu文中的C#代码:staticvoidMain(string[] args){Console.WriteLine("Main Thread Id: {0}\r\n",Thread.CurrentThread.ManagedThreadId);Test();Console.
阅读全文
c#跟objective-c语言特性
摘要:c#跟objective-c语言特性的对比拿c#语言跟objective-c做个对比,记录下自己认为是差不多的东西。学过objc的人相信对category这个东西肯定不陌生,它可以让我们在没有源码的基础上对原先的类添加额外的一些方法,写到这,是不是可以想像到跟c#中的扩展方法很像。是的,它们虽然叫法不一样,但所能完成的功能是一样的。接下来说说objc中的Protocol,这是一个与类无关的概念,任何类都可以实现已经定义好的Protocol,这东西跟c#中的接口差不多,只不过objc中的Protocol有可选跟必选两个概念,那到底是两个什么东西呢?可选就是说你在实现这个Protocol的时候,它
阅读全文
.NET 类库研究
摘要:.NET 类库研究必备参考 添加微软企业库源码 前不久,为大家提供了一个.NET 类库参考源码的网站,扣丁格鲁(谐音“coding guru”),使用了段时间,发现一些不方便的地方,特意做了一些更改,希望大家多提意见,下面是此次更改的地方。更改1. 目录结构调整,将同主题的参考代码放到一级目录中,再根据参考代码的版本创建子目录。举个例子,原来输入http://www.projky.com/后面加上 “NET4.0”访问.NET4.0的参考代码,现在,将.NET4.0放入了dotnet的二级目录中,需要访问http://www.projky.com/dotnet/4.0才可以。同样的,asp.n
阅读全文
套打
摘要:水晶报表实现套打对于套打的情况,一般出现在以下两种情况:1:清单类打印,一般可能是已经是在已经印刷好的纸张上打印2:单据发票类,一般单据格式固定,如每张打印5行数据,而且这种格式是已经印刷好的,当然机打发票除外。我们以第2种情况为例进行说明,因为第2种会了第1种也自然就明白了在这里我们使用程序代码+报表中设置背景图片的方式来实现。1、纸张尺寸类型很难控制客户端的,那就用A4纸,计算设置较大右边距和下边距,以适合你的单据尺寸;2、页面设置,精确计算左边距与上边距,放好你需打印的组件与不需打印的组件(Top与Left);3、窗体上,三个控件:CrystalReport控件、CrystalRepor
阅读全文
Java、C#双语版HttpHelper类
摘要:Java、C#双语版HttpHelper类(解决网页抓取乱码问题)在做一些需要抓取网页的项目时,经常性的遇到乱码问题。最省事的做法是去需要抓取的网站看看具体是什么编码,然后采用正确的编码进行解码就OK了,不过总是一个个页面亲自去判断也不是个事儿,尤其是你需要大量抓取不同站点的页面时,比如网页爬虫类的程序,这时我们需要做一个相对比较通用的程序,进行页面编码的正确识别。乱码问题基本上都是编码不一致导致的,比如网页编码使用的是UTF-8,你使用GB2312去读取,肯定会乱码。知道了本质问题后剩下的就是如何判断网页编码了。GBK、GB2312、UTF-8、BIG-5,一般来说遇到的中文网页编码大多是这
阅读全文
async和await用法
摘要:async和await用法要理解async和await的用法,首先要了解Task相关知识,这里不做说明,因为这不是本文的重点。如果你已经对Task很了解,那么如何使用async和await,在此主要总结了以下三点:只有在async方法里面才能使用await操作符;await操作符是针对Task对象的;当方法A调用方法B,方法B方法体内又通过await调用方法C时,如果方法C内部有异步操作,则方法B会等待异步操作执行完,才往下执行;但方法A可以继续往下执行,不用再等待B方法执行完。对于第三点说的有点绕,所以下面结合代码说一下: static void Main(string[] a...
阅读全文
c#之委托总结
摘要:c#之委托总结1、委托的声明和编译原理声明委托:1 delegate void Translate(string str);通过反编译之后可得下面代码 private sealed class Translate:System.MulticastDelegate//就是一个多播委托 { public Translate(object o, Method m) { }//(实现委托方法),隐性传进来的 o 就是 当前类的 this对象,第二个参数是传进来的事件 public void Invoke(string str) { }//实现 委托的方法(向委...
阅读全文
可靠、高吞吐架构基础改造
摘要:可靠、高吞吐架构基础改造前言 在互联网应用项目中分布式设计是必不可少的环节,通过分布式设计从而达到简单扩容硬件的方式来提高系统和平能的总体吞吐能力。但实际应用中并不是简单地进行分布式设计就能解决问题,因为在现实应用并不是所有硬件资源都可以很好地进行扩容,比较常见的就是数据库资源,所以在设计整个架构的时候必须考虑部署资源的局限制性;否则整个构架所产生的效果就不能达到设计前规划水平。下面讲述构建一个可靠、高吞吐的分布式业务架构基础改造。现有架构 以上结构是最常见的分布式设计结构,而我们现有项目也是遵循着这种结构。这种结构看上去似乎比较理想,通过添加的硬件就能支撑所需要的访问量;但这种架构在...
阅读全文
c#中运行时编译时 多态
摘要:c#中运行时编译时 多态public class aa{}public class bb:aa{}public class cc{ public static void Main() {}多态性(Polymorphism)一词最早用于生物学,指同一种族的生物体具有相同的特性。在C#中多态性的定义是:同一操作作用于不同的类的实例、不同的类将进行不同的解释、最后产生不同的执行结果。C#支持两种类型的多态性:编译时的多态性(静态联编)编译时的多态性是通过重载来实现的。方法重载和操作符重载、它们都实现了编译时的多态性。对于非虚的成员来说系统在编译时根据传递的参数、返回的类型等信息决定实现何种操作。运行
阅读全文
C#事件与委托的区别
摘要:C#事件与委托的区别1. 委托事件是利用委托来定义的,因此先解释委托。委托是一个类,它与其他类如int,string等没有本质区别,int代表的是所有的整形,而string代表的是字符串,委托则代表的是一类方法,这类方法具有相同返回类型和相同参数。委托的定义: public delegate void CalculatorHandler(int x,int y);从CalculatorHandler这个委托的定义可以看出,它反应的是一类方法,这类方法的返回类型是void,两个参数是(int x,int y),因此以后所有具有这样特征的方法都可以用这个委托来代替,现有以下这个方法: s...
阅读全文
封装起来 异步执行
摘要:winform 开发中 把耗时操作 封装起来 异步执行(.net 4.0).先定义一个BackgroundTask.cs 代码如下: 1 public class BackgroundTask 2 { 3 private static WaitDialogForm LoadingDlgForm = null; 4 5 public static void BackgroundWork(Action action, object obj) 6 { 7 using (BackgroundWorker bw =...
阅读全文
async/task/await
摘要:async/task/await三组合是.NET Framework 4.5带给.NET开发者的大礼,合理地使用它,可以提高应用程序的吞吐能力。但是它的使用有点绕人,如果不正确使用,会带来意想不到的问题——比如await之后一直在等待,等到花儿也谢了,也等不来。这篇博文将向你展示我们在实际开发中遇到的这个问题。先看一段ASP.NET MVC示例代码:public class BlogController : Controller{ public async Task AwaitDemo() { var responseHtml = GetResponseHtml("h...
阅读全文
NET 类库
摘要:NET 类库研究必备参考 扣丁格鲁 .NET 类库的强大让我们很轻松的解决常见问题,作为一个好专研的程序员,为了更上一层楼,研究CLR的基础类库实现是快速稳定的捷径。 一般场景下,采用 Reflector可以反射出.NET 的部分实现出来,可以拿来参考,但和微软公开的SSCLI(官方网址:http://referencesource.microsoft.com/netframework.aspx)比较起来,缺少注释、没有风格、代码质量一般,为了方便大家,将SSCLI的内容按版本和命名空间的组织方式放到了网上,域名是http://www.projky.com。 域名首页截图,IE 10以上版本请
阅读全文
C#伪彩色处理
摘要:伪彩色处理是指将灰度图像转换成彩色图象。因为人眼对于彩色的分辨能力远高于对灰度图像的分辨能力,所以将灰度图像转换成彩色可以提高人眼对图像细节的辨别能力。伪彩色并不能真实的反映图像像的彩色情况。 效果图: 强度分层法和灰度级-彩色变换法: (1)强度分层法是伪彩色处理技术中最简单的一种。 在某个灰度级Li上设置一个平行于x-y平面的切割平面,切割平面下面的,即灰度级小于Li的像素分配给一种颜色,相应的切割平面上大于灰度级Li的像素分配给另一种颜色。这样切割结果可以分成两层的伪彩色。可以使用M个平面去切割,就会得到M个不同灰度级的区域,这样就是具有M种颜色的为彩色图像。这种方法虽然简单...
阅读全文
C#编程断点续传
摘要:C#编程总结(十二)断点续传Posted on2014-02-16 10:56停留的风阅读(384) 评论(3)编辑收藏C#编程总结(十二)断点续传 我们经常使用下载工具,如bit精灵、迅雷、FlashGet,这些软件都支持断点续传。断点续传即下载任务暂停后可以继续,而无需重新下载,即下载时需要通知服务器的起始位置。如果允许多线程进行分片下载,必须提供起始-截止位置。说到底就是可以选择下载某个片段,整个文件的字节流,可以截取流的片段,也能实现流的累积,最终完成文件下载。一、原理在 HTTP/1.1里新增的一个头属性:Range,也是现在众多号称多线程下载工具(如 FlashGet、迅雷等)实现
阅读全文
WisDom .net开发框架设计 2
摘要:随笔- 10 文章- 0 评论- 57WisDom .net开发框架设计 (二)WisDom .net 权限设计1。前言几乎在所有的管理的系统,都离不开用户,角色,权限,菜单,组织架构。 这些应该算是管理系统框架的核心所在,用户是系统的基础数据之一,不同的用户的操作权限不一定一样。不同的用户可能在组织架构的位置和可见菜单,也不一定相同,正是因为这样的所以才有了权限管理2。需求分解 1.除管理员外。用户A不可以操作用户B的数据,管理员可以操作所有用户的数据 2.一个用户可以归属多个部门,属于不同的角色。 3. 可以赋予不同角色不同的权限3. 数据库设计 1. UserInfo用户表 这个顾名思义
阅读全文
多线程处理大数组
摘要:多线程处理大数组阅读目录当单线程处理大数组遇到性能瓶颈时应该怎样处理Thread.Join方法简介多线程处理大数组的实现总结今天领导给我们发了一篇文章文章,让我们学习一下。文章链接:TAM - Threaded Array Manipulator这是codeproject上的一篇文章,花了一番时间阅读了一下。文章主要是介绍当单线程处理大量数组遇到性能瓶颈时,使用多线程的方式进行处理,可以缩短数组的处理时间。看了这篇文章后,感觉似曾相识,很多次,当我想要处理大数组时,我就会进行构思,然后想出的解决方案,与此文章中介绍的方案非常的相似。但是说来惭愧,此文章的作者有了构思后便动手写出了实现代码,然后
阅读全文
C#核心语法
摘要:C#核心语法目录1.特殊的数据成员...........................................................................12.数组(array).............................................................................13.命名空间(namespace).................................................................24.方法的参数传递..........................
阅读全文
C#编程总结
摘要:C#编程总结--总目录多年的C#实战经历,希望通过一个系列课程对C#编程做系统总结。总结过去,展望未来。新的一年,新的征程,新的开始!希望我们在2014梦想成真,马到成功!1、C#编程总结(一)序列化2、C#编程总结(二)多线程基础3、C#编程总结(三)线程同步4、C#编程总结(四)多线程应用5、C#编程总结(五)多线程带给我们的一些思考6、C#编程总结(六)异步编程7、C#编程总结(七)数据加密——附源码8、C#编程总结(八)数字签名9、C#编程总结(九)字符编码10、C#编程总结(十)字符转码更新中...,敬请关注!该系列文章,拒绝转载!成长,我们一起见证!分类:C#编程总结标签:C#编程
阅读全文
C#集合基础与运用
摘要:C#集合基础与运用C#集合基础与运用1.集合接口与集合类型...............................................1(1)集合的命名空间.................................................2(2)集合接口介绍.....................................................21、 IEnumerable与IEnumerator接口.............22、集合和列表实现的接口表............................22.集合的基本操作.......
阅读全文