异步编程:线程概述及使用
    
            
摘要:异步编程:线程概述及使用=============C#.Net篇目录==============从此图中我们会发现.NET与C#的每个版本发布都是有一个“主题”。即:C#1.0托管代码→C#2.0泛型→C#3.0LINQ→C#4.0动态语言→C#5.0异步编程。现在我为最新版本的“异步编程”主题写系列分享,期待你的查看及点评。异步编程:线程概述及使用异步编程:使用线程池管理线程异步编程:同步基元对象异步编程:并行任务Task异步编程:.NET1.0异步编程模型(APM)异步编程:.NET 2.0基于事件的异步编程模式(EAP)异步编程:.NET 4.5基于任务的异步编程模式(TAP)异步编程:
        
阅读全文
摘要:随笔- 82 文章- 0 评论- 971.NET深入解析LINQ框架(五:IQueryable、IQueryProvider接口详解)3.5.环路执行对象模型、碎片化执行模型(假递归式调用)3.6.N层对象执行模型(纵横向对比链式扩展方法)3.7.LINQ查询表达式和链式查询方法其实都是空壳子3.8.详细的对象结构图(对象的执行原理)3.9.IQueryable<T>与IQueryProvider一对一的关系能否改成一对多的关系4.完整的自定义查询3.5】. 环路执行对象模型、碎片化执行模型(假递归式调用)这个主题扯的可能有点远,但是它关系着整个LINQ框架的设计结构,至少在我还没
        
阅读全文
摘要:C#实现QQ登录发消息,加好友,查资料等功能C#实现QQ登录,发消息等功能提供下源代码下载:http://files.cnblogs.com/sufei/qq%E6%8E%A5%E5%8F%A3%E7%A8%8B%E5%BA%8F.rar这个好些人使用不了,说登录不上,那么我有个办法一定可以你新注册一个QQ,记住一定不要在电脑上登录,先在手机上登录一下,然后再拿你申请的这个“QQ到我的软件上登录是一定可以的,我亲测试的。希望大家注意这点啊我给大家提供下我刚注册的QQ是可以的QQ2859992477 密码是cckan.net大家别忘记给个评论或者建议哦1.登录2.好友列表3.查任意QQ资料(所.
        
阅读全文
摘要:C#调用GDI+1.1中的函数实现高斯模糊、USM锐化等经典效果。Posted on2012-12-13 09:29Imageshop阅读(89) 评论(1)编辑收藏 在GDI+1.1的版本中,MS加入不少新的特性,其中的特效类Effect就是一个很有吸引力的东西,可惜在VS2010的Image类中,却没有把这个类封装进来(不晓得是不是我没有发现),这个也许MS也有自己的考虑的,毕竟要使用这些函数,必须要求系统是WindowsVista及其以上,而XP的市场占有率在那个时候还比较高的。 不过,作为一种选择,我们有义务把这些函数给哪些已经按照了这些最新系统的客户使用。 其实,这些函数我在VB6.
        
阅读全文
摘要:C#线程基础在前几篇博文中都介绍了,现在最后来挖掘一下线程池的管理机制,也算为这个线程基础做个完结。 我们现在都知道了,线程池线程分为工作者线程和I/O线程,他们是怎么管理的? 对于Microsoft设计的CLR线程池,线程池会随着CLR的每个版本的发布,都会发生变化,很难去挖掘,这里的提议是: 最好将线程看成一个黑盒。不要拿单个应用程序去衡量这个黑盒的性能,因为它对任何一个应用程序来说都无法做到完美。 相反,它是一种常规用途的线程调度技术,面向大量应用程序;它对某些应用程序的效果要好于其他应用程序。目前,它的工作情况非常理想,这里建议你信任它,因为你很难高出一个比CLR自带的那个更好...
        
阅读全文
摘要:阅读目录:1.开篇介绍2.扩展Linq to Object (应用框架具有查询功能)2.1.通过添加IEnumerable<T>对象的扩展方法2.2.通过继承IEnumerable<T>接口2.3.详细的对象结构图3.实现IQueryable<T> 、IQueryProvider接口3.1.延迟加载IEnumertor<T>对象(提高系统性能)3.2.扩展方法的扩展对象之奥秘(this IQueryable<TSource> source)3.3.分段执行IQueryable<T>中的子方法(Queryable中的扩展方法
        
阅读全文
摘要:在做Winform项目的时候,一直有一个梦想,就是希望把所有的组件模块组合即可组装成一个完整的项目系统(或者至少可以大部分完成)。这即使是梦想,我也一直为之奋斗,每前进一步,我们离梦想就靠近一步。因此,本着这个梦想,我一路走来,开发整理了一系列的组件模块,包括底层的公用类库、Winform分页控件、通用的适应多数据库的查询组件,以及相对高层次一点的组件模块:通用权限管理系统、通用字典管理模块、通用程序自动更新模块、以及本篇随笔介绍的通用附件管理模块,当然还会有更多的组件模块会吸引我继续朝着梦想前进。除了这些,为了提高开发效率,从设计好的数据库,直接生成项目代码,从05年开始至今,一直完善我的代
        
阅读全文
摘要:为了展示如何使用FastMessenger编写并发程序,我会重写或改写一些其它网友的多线程程序,给愿意学习和了解FastMessenger的朋友提供更多直观的范例。一般来说我会对原来的程序进行一些技术分析,得出原作者的设计意图和实现手段,然后解释用FastMessenger来重写或改写会使用哪些设计,最后给出源程序。这次我选择的是苏飞网友(本人在此表示感谢)的C#多线程网站压力测试程序,他的博客和相关博文地址如下:苏飞—C#.NetC#多线程|匿名委托传参数|测试您的网站能承受的压力|附源代码C#多线程|匿名委托传参数|测试您的网站能承受的压力|附源代码--升级版据他自己介绍,这个程序虽然有一
        
阅读全文
摘要:前言:最近忙碌了几件事:1:QBlog v3系列单用户版升级了:主要是园子里的地平线同学反馈了些问题,所以顺道修正和优化一起折腾:下载地址:http://www.cyqdata.com/download/article-detail-427地平线同学的刚弄上的博客:http://www.tanyucheng.cn2:帮一园子友人折腾优化Http代理工具,并支持Https访问,这项成果,后续会集成到秋式广告杀手里。3:看那个霹雳的刀剑春秋,剧情不错,特别是生死相许的不世基情。4:OAuth2组件升级了一下。OAuth2历史文章:1:通用社区登陆组件技术分享(开源)上篇:OAuth 授权登陆介绍2
        
阅读全文
摘要:C#线程篇---Task(任务)和线程池不得不说的秘密(5) 在上篇最后一个例子之后,我们发现了怎么去使用线程池,调用ThreadPool的QueueUserWorkItem方法来发起一次异步的、计算限制的操作,例子很简单,不是吗? 然而,在今天这篇博客中,我们要知道的是,QueueUserWorkItem这个技术存在许多限制。其中最大的问题是没有一个内建的机制让你知道操作在什么时候完成,也没有一个机制在操作完成是获得一个返回值,这些问题使得我们都不敢启用这个技术。 Microsoft为了克服这些限制(同时解决其他一些问题),引入了任务(tasks)的概念。顺带说一下我们得通过Syste...
        
阅读全文
摘要:前言:最近忙碌了几件事:1:QBlog v3系列单用户版升级了:主要是园子里的地平线同学反馈了些问题,所以顺道修正和优化一起折腾:下载地址:http://www.cyqdata.com/download/article-detail-427地平线同学的刚弄上的博客:http://www.tanyucheng.cn2:帮一园子友人折腾优化Http代理工具,并支持Https访问,这项成果,后续会集成到秋式广告杀手里。3:看那个霹雳的刀剑春秋,剧情不错,特别是生死相许的不世基情。4:OAuth2组件升级了一下。OAuth2历史文章:1:通用社区登陆组件技术分享(开源)上篇:OAuth 授权登陆介绍2
        
阅读全文
摘要:提示:本文所提到的线程状态变化,并不是指线程启动、暂停、停止,而是说线程内部状态的迁移。 随着软件技术不断发展,用户需求不断提升,多线程的重要性日益凸显。 关于线程,通俗的讲,每当启动一个exe应用程序,都会创建一个进程和一个主线程,主线程用来处理界面绘制、界面事件响应等工作,而进程则是线程的容器,主线程和用户创建的新线程,都将在相应的进程中维护。 由此可知,一个程序之所以能工作,是线程的功劳,进程仅仅是容器而已,一旦程序的主线程被阻塞,就会造成界面无响应等现象,这时候就要用多线程解决问题。 然而,在程序中使用多线程,是比较头疼的一件事。以我的体会,多线程首先会造成程序不稳定,处理不好容易导致
        
阅读全文
摘要:最后在公司实习,新人不给活干,就自己随便看看,了解一些DevExpress控件啊,编码规范啊之类的,自己就寻思着写一点点小东西练习练习出于自己对c# socket这块不熟,就选择了这块,顺便可以进一步了解委托 代理。闲话不说,先说下这次做的东西:一个局域网聊天的小软件 主要基于udp的通信,如果读者还不知道udp or tcp 那请度娘一下。。。基本思路(这也都是网上查的,还查了飞鸽传书的 基本原理,在此感谢网上的各位高手哈):1:软件开启的时候先新开一个线程,该线程充当服务器端,一直死循环监听2:开了新线程了,调用广播的方法3:此时如果局域网内已经有有其它主机打开了这个软件,将会监听到这个广
        
阅读全文
摘要:C#基类库大全苏飞版--系列教程导航2012-12-07 14:16 by 苏飞-C#.Net, 0 阅读,0评论,收藏,编辑C#基类库大全苏飞版--系列教程导航在这里我把博客中所有相关的帮助类总结 一下,以后会陆续更新,每周日更新一次,希望大家关注,方便大家查阅,请大家关注本文章 ,希望多提提建议。这里面大部分超初是网上收集的,但是我在发布之前会做一些简单的修改,帮助大家理解,最少也会增加一些注释之类的,例子一定会有的。像里面的HttpHelper,SqlHelper,还有其它的一些帮助类,是我自己的作品希望大家支持如果大家特别喜欢那个类的话,可以回复我,我会预先更新这个类,以方便 大家的使
        
阅读全文
摘要:关于“事件”的定义,请去问Google吧,本文不引用官方的术语。废话不多说,先定义一下场景:微波炉,大家生活中都有用过,当你关上微波炉的门时便自动加热。“关门”和“加热”便是两个动作。注意,当关上门的时候便开始加热,这里“当关上门”便是一个“事件”的触发条件。触发了什么?“加热”这个动作。我相信你完全能理解我上面所说的内容吧?那么接下来我便一步一步来实现我的题目“C#事件Event”第一步:定义我们的对象对象一:微波炉/// <summary> /// 微波炉 /// </summary> class Microwave { }对象二:加热器(微波炉内置)/// ...
        
阅读全文
摘要:c# tcp通讯可以用tcplistener做服务器,tcpclient做客户端,这两个类在framework里已封装好,调用也比直接调用socket方便得多,但性能相对socket又差一些,如果想取得更好一点的性能,可以模仿tcplistener和tcpclient对socket进行封装。但不管是socket还是tcplistener与tcpclient,数据接收处理都需要自己进行处理,经过一段时间总结,我采用如下方法对数据进行封包:[包长 4个byte][aciton动作类型 4个byte][实体 N个byte][包长 4个byte] 这里最重要的是第一个包长4个字节,有了包长的信息,就可
        
阅读全文
摘要:这样一段代码:.class public auto ansi Test extends [mscorlib]System.Object{.method public static pinvokeimpl("msvcrt.dll" cdecl)int32 sscanf(string, string, int32&) cil managed { }.field public static int32 val.method public static void Main() cil managed{.entrypoint.locals init (int32 n)ldst
        
阅读全文
摘要:年度开源力作,博客园首发,回馈广大用户。2012-12-03 14:52 by 麦舒, 4241 阅读,52评论,收藏,编辑好久没有在博客园里抛头露面,距离上一篇博客,想来也有一年了吧。这一年,虽然没有写博客,但是还是一直在关注博客园的。这一年当里,博客园似乎变得更为热闹了,但是,发布作品的似乎比之前少了很多,能够一直坚持下来的更是少。很多用户都问到我,ALinq 很什么时候发布新版,还是已经停止更新了。不止一次说过,只要有一个用户在用我的产品,都会更新、维护下去的。因为为什么?梦想!我要开发出世界一流的软件产品,体现自己的价值。这个开源项目,现在暂且称之为ALinq Dynamic吧,原来是
        
阅读全文
摘要:C# 下写入视频的简单实现很多时候我们要读写视频,C#读视频(对视频解码)网上的例子很多,然而写视频(对视频编码)的例子却很少,也很少能搜索到有用的信息。下面是使用Aforge.Net写视频的简单方案。Aforge.Net 是一个 C# 版的图像和计算机视觉库,网站http://www.aforgenet.com/。下载安装。Aforge.Net 有一个子项目 AForge.Video.FFMPEG 对 ffmpeg 的视频操作进行了封装。添加对 AForge.Video.FFMPEG.dll, AForge.Video.dll和 AForge.dll 三个 dll 的引用,Aforge.Ne
        
阅读全文
摘要:随着最终用户对用户体验需求的不断提高,实际上我们很多情况下已经在按照桌面应用的标准来设计Web应用,甚至很多Web页面本身就体现为一个单一的页面。对于这种复杂的页面,我们在设计的时候不可以真的将所有涉及的元素通通至于某个单独的View中,将复杂页面相对独立的内容“分而治之”才是设计之道。我们可以借鉴Smart Clent应用的设计方式:将一个Windows Form作为应用的容器(Smart Client Shell),在操作过程中动态地激活相应的用户控件(Smart Part)并加载到容器中。对于一个复杂页面来说,我们也只需要将其设计成一个容器,至于运行过程中动态显示的内容则可以通过Ajax
        
阅读全文