.net学习之多线程、线程死锁、线程通信 生产者消费者模式、委托的简单使用、GDI(图形设计接口)常用的方法
摘要:.net学习之多线程、线程死锁、线程通信 生产者消费者模式、委托的简单使用、GDI(图形设计接口)常用的方法1.多线程简单使用(1)进程是不执行代码的,执行代码的是线程,一个进程默认有一个线程(2)线程默认情况下都是前台线程,要所有的前台线程退出以后程序才会退出,进程里默认的线程我们叫做主线程或者叫做UI线程(3)线程什么时候结束?如果线程是前台线程,该线程执行的方法执行完以后线程就会自动退出(4)后台线程只要所有的前台线程结束,后台线程就会立即结束(5)多个线程访问同一资源,可能造成不同步的情况,这个叫做线程重入,可以使用lock加锁将执行的共同方法中的代码加上lock(6)thread.A
阅读全文
AgileEAS.NET SOA中间件平台/敏捷软件开发平台
摘要:AgileEAS.NET SOA中间件平台/敏捷软件开发平台最新下载一、前言 AgileEAS.NET SOA中间件平台,简称EAS.NET,是基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。 AgileEAS.NET SOA中间件平台包含基础类库、资源管理平台、运行容器、开发辅助工具等四大部分,资源管理平台为敏捷并行开发提供了设计、实现、测试等开发过程的并行,基于AgileEAS.NET平台的应用系统的各个业务功能子系统,在系
阅读全文
Hashtable Dictionary List
摘要:Hashtable Dictionary List 谁效率更高一 前言 很少接触HashTable晚上回来简单看了看,然后做一些增加和移除的操作,就想和List 与Dictionary比较下存数据与取数据的差距,然后便有了如下的一此测试,当然我测的方法可能不是很科学,但至少是我现在觉得比较靠谱的方法。如果朋友们有什么好的方法,欢迎提出大家来交流下。先来简单介绍这三个容器的各自特点吧1 hashtable散列表(也叫哈希表),是根据关键字(Key value)而直接访问在内存存储位置的数据结构。2 List是针对特定类型、任意长度的一个泛型集合,实质其内部是一个数组。3Dictionary泛型.
阅读全文
try { var mergeFilePath = string.Format("{0}mergepdf.pdf", tempDownDir); PDFPrintHelper.MergePDFFile(pdfList, mergeFi
摘要:winform 按顺序连续打印多个PDF文件关于PDF打印的问题,前面有篇文章(点这里查看)也叙述过,今天来谈谈另外一种方法其实方法很简单,因为需要把多个PDF文档按顺序连续打印,为此我们为什么不把要打印的pdf文档按顺序合并成一个PDF打印呢?如此就简单多了哦。这里文章写出来并不是为了炫耀什么,只是觉得发现些好东西就分享出来而已,同时也做个记录,方便以后查找开始正文1、为了方便,打印方法就不另寻他路了,和前面一致,具体如下:View CodeProcess proc = new Process();proc.StartInfo.CreateNoWindow = false;proc.Star
阅读全文
WCF MSMQ
摘要:基于WCF MSMQ 的企业应用解决方案 最近研究了一下基于MSMQ的WCF应用,从书上、网上查了很多资料,但始终没能彻底理解WCF-MSMQ的工作原理,也没能得到一个合理的应用解决方案。索性还是自己做个实验,探索一下吧。经过反复试验,颇有收获,现跟大家分享一下。 首先我的解释一下为什么查了那么多资料却未能理解WCF-MSMQ的工作原理,不是各位大牛没有把原理讲清楚,而是大多数给出的例子都是在单机上运行的,这就很难说明白离线工作的原理。 为了说明问题,我用了四台虚机来部署我的实验程序,首先我给大家看一下我的程序部署结构: 4台虚机(红线表示消息流向),它们的操作系统都是Windows2...
阅读全文
C# 浅谈委托----温故而知新
摘要:C# 浅谈委托----温故而知新先看看委托的概述:•委托类似于 C++ 函数指针,但它们是类型安全的。• 委托允许将方法作为参数进行传递。• 委托可用于定义回调方法。• 委托可以链接在一起;例如,可以对一个事件调用多个方法。•方法不必与委托签名完全匹配。 有关更多信息,请参见在委托中使用变体(C# 和 Visual Basic)。• C# 2.0 版引入了匿名方法的 概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。 C# 3.0 引入了 Lambda 表达式,利用它们可以更简练地编写内联代码块。 匿名方法和 Lambda 表达式(在某些上下文中)都可编译为委托类型。 这些功能统称
阅读全文
二纬码标签打印
摘要:net二纬码标签打印 在企业开发中经常用到二纬码标签,本文详细介绍.net环境下整个二纬码解决方案.开发环境 vs2008 DevExpress8.3 ThoughtWorks.QRCode (二纬码生成组件,高版本的DevExpress自带二纬码就不需要这个了)步骤1.在项目中添加一XtraReport项,命名XtraReportEmpQRCode.cs2.建立打印用的数据实体类,并按此建立数据源View Code[Serializable] public class LblInfo { public int Id { get; set; } publ...
阅读全文
C#线程池用法
摘要:C#线程池用法在C#编程语言中,使用线程池可以并行地处理工作,当强制线程和更新进度条时,会使用内建架构的ThreadPool类,为批处理使用多核结构,这里我们来看在C#编程语言中一些关于来自System.Threading的ThreadPool的用法的例子。介绍 .NETFramework提供了包含ThreadPool类的System.Threading空间,这是一个可直接访问的静态类,该类对线程池是必不可少的。它是公共“线程池”设计样式的实现。对于后台运行许多各不相同的任务是有用的。对于单个的后台线种而言有更好的选项。 线程的最大数量。这是完全无须知道的。在.NET中ThreadPool的所
阅读全文
.net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、拷贝大文件、序列化和反序列化
摘要:.net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、拷贝大文件、序列化和反序列化1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里面加(3)如果存储数据的数组满了,就会新建一个数组长度是原来的数组的两倍,这个数组被原来的数组的变量所引用比如自己实现简单的ArrayList Add方法public class MyArrayList { priv...
阅读全文
阿里.聚石塔.开放平台的使用
摘要:阿里.聚石塔.开放平台的使用好久没有继续跟进淘宝的API使用了,有很多做相关应用的同行都来咨询,很多都因为自己开发工作比较忙而没有来得及好的处理,前几天,有一个朋友叫帮忙指导如何使用淘宝API,由于原来有一些成熟的例子应用,因此原以为直接运行或者稍微修改一下即可,因此没有太多的注意。可是,发现淘宝的API应用变化已经很大了,离我最后一篇淘宝API例子的随笔《淘宝API开发系列---淘宝API的测试及使用2》有一年多的时间了,因此重新到http://api.taobao.com/myresources/standardSdk.htm里面下载最新的SDK进行更新调整,可是里面很多接口已经有所变化,
阅读全文
Lazy Scheduler
摘要:Lazy Scheduler:我的轻量级任务调度框架一、背景 工作中经常涉及任务调度,一直都是采用while(true) => if hitted DO => Thread.Sleep(interval)的模式。但是最近实在是感觉这种实现模式很挫。并且没有考虑到性能问题,需要撞击n次才能命中一次,使用效率不足5%(一百次while循环命中不到5次),但是单方面加大线程睡眠时间又无法保证高准确性和高精度。那有么有其它好的思路:即可以保持高准确性、高精度,又不浪费资源呢?二、我的思路 上述的短板在于:无目的的线程Sleep,如果我们可以每次恰到好处的Sleep,即线程被唤醒后刚好赶上下
阅读全文
Load ContextCLR 探测
摘要:目录背景Load ContextCLR 探测过程弱签名程序集的探测过程强签名程序集的探测过程Default ContextLoad-From ContextNo ContextRelfection-Only Context参考资料备注背景返回目录任何一门语言都要了解其类型加载过程,如:Java 的 Class Loader,NodeJS 的搜索方式等,本文概述一下我对 CLR 如何加载程序集,重点说一下 Load Context。其编译时只是在程序集中生成了元数据(如:依赖的程序集标识)和代码。当代码执行时,CLR 会根据元数据加载依赖的程序集。Load Context返回目录参考文章:htt
阅读全文
C#socket通信1
摘要:.net平台下C#socket通信(上)完全是基础,新手可以随意看看,大牛可以关闭浏览页了,哈哈。在开始介绍socket前先补充补充基础知识,在此基础上理解网络通信才会顺理成章,当然有基础的可以跳过去了。都是废话,进入正题。 TCP/IP:Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议,又名网络通讯协议。简单来说:TCP控制传输数据,负责发现传输的问题,一旦有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地,而IP是负责给因特网中的每一台电脑定义一个地址,以便传输。从协议分层模型方面来讲:TCP/I.
阅读全文
net异步编程
摘要:.net异步编程现在电脑大部分都是多核心,在处理多线程方便有很大优势,异步调用方法的时候可以立即返回执行其他程序,进行异步编程会让程序运行效率更高。我也是刚刚关注异步编程方面知识,也有很多不是很理解,所以想向大神请教关于.net异步编程的一些问题。1、异步编程原理,主程序和异步程序还有回调函数分别什么线程上,执行顺序?2、怎么使回调函数获取异步返回值,并在回调完毕后关闭主程序?3、能否主程序结束,异步程序还可以继续执行,执行完毕后执行回调?4、异步编程实际应用的作用如何,真正能带来多大好处?想用异步编程,如何更好的运用?下面是我写的代码: 1 /*Author:liulei 2 *Des:异.
阅读全文
二维码的生成细节和原理
摘要:二维码的生成细节和原理投递人itwriter发布于 2013-10-29 10:54评论(29)有1970人阅读原文链接[收藏]«» 二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章 ,揭露一下。供好学的人一同学习之。 关于 QR Code Specification,可参看这个 PDF:http://raide
阅读全文
在C#代码中应用Log4Net系列教程
摘要:在C#代码中应用Log4Net系列教程(附源代码)Log4Net应该可以说是DotNet中最流行的开源日志组件了。以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了。没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这系列的教程讲的是Log4Net的应用。学习完这系列的教程,你可以实现如下图一样整洁、醒目的日志文件。教程中的每一篇文章都有可以运行的例子,并且教程里面的例子基本上都是典型的应用,你可以直接拿来用。我整理了一个Log4Net的配置文件Log4Net.config和一个日志帮助类LogHelper,你可以直接拷到你的项目中,然后就可以直接用了,什么都不
阅读全文
IL代码完结篇
摘要:读懂IL代码就这么简单(三)完结篇一 前言写了两篇关于IL指令相关的文章,分别把值类型与引用类型在 堆与栈上的操作区别详细的写了一遍这第三篇也是最后一篇,之所以到第三篇就结束了,是因为以我现在的层次,能理解到的都写完了,而且个人认为,重要的地方都差不多写到了,最后一篇决定把之前的内容全部整合起做一个综合的例子,然后简单的解释下IL指令的含义,及在内存中的变化如果你没有看前两篇请狂点这里读懂IL代码就这么简单 (一)读懂IL代码就这么简单(二)IL指令大全 :IL指令详解IL反编译工具:ILDasm注:因本人水平有限,难免有理解错误之处,如有发现,望及时指出,我会立马更正。二 IL指令详解 (基
阅读全文
.net泛型理解
摘要:.net泛型理解泛型简介: 泛型(Generic Type)是.NET Framework2.0最强大的功能之一。泛型的主要思想是将算法与数据结构完全分离开,使得一次定义的算法能作用于多种数据结构,从而实现高度可重用的开发。通过泛型可以定义类型安全的数据结构,而没有必要使用实际的数据类型,这将显著提高系统性能并得到高质量的代码(因为可以重用数据处理算法,没有必要复制类型特定的代码)。泛型工作原理: 通过泛型可以定义类型安全并且对性能或工作效率无损害的类。表面上,C#泛型的语法和C++模板类似,但编译器在实现和支持他们的方式存在重要的差异。与C++模板相比,C#泛型可以提供增强的安全性,但在..
阅读全文
TFS二次开发的数据统计以PBI、Bug、Sprint等为例(一)
摘要:TFS二次开发的数据统计以PBI、Bug、Sprint等为例(一)在TFS二次开发中,我们可能会根据某一些情况对各个项目的PBI、BUG等工作项进行统计。在本文中将大略讲解如果进行这些数据统计。 一:连接TFS服务器,并且得到之后需要使用到的类方法。 /// /// tfs的 /// private TfsTeamProjectCollection server; private WorkItemStore workstore; private TeamSettingsConfigurationService co...
阅读全文
Lazy<T>在Entity Framework中的性能优化实践
摘要:Lazy在Entity Framework中的性能优化实践(附源码)2013-10-27 18:12 by JustRun,328阅读,4评论,收藏,编辑在使用EF的过程中,导航属性的lazy load机制,能够减少对数据库的不必要的访问。只有当你使用到导航属性的时候,才会访问数据库。但是这个只是对于单个实体而言,而不适用于显示列表数据的情况。这篇文章介绍的是,使用Lazy来提高显示列表页面的效率。这里是相关的源代码PerformanceTest.zip阅读目录:一、问题的描述二、数据表和EF实体介绍三、lazy load的性能四、使用StudentExtensionRepository来提高
阅读全文