C# .NET-Learning
文章平均质量分 82
metasearch
这个作者很懒,什么都没留下…
展开
-
Use XML Serialization with Custom Objects
<br /> <br /><br />using System;<br />using System.Xml;<br />using System.Xml.Serialization;<br />using System.IO;<br /><br />public class SerializeXml {<br /> private static void Main() {<br /> CarList catalog = new CarList("New List", DateTime.转载 2011-03-02 13:59:00 · 588 阅读 · 0 评论 -
Creating Custom Exceptions in .NET
Creating Custom Exceptions in .NETIntroductionMinimal Exceptions TypesSerialization BasicsCustomizing SerializationClosing WordsIntroductionAlthough the .NET framework contains all k转载 2012-01-17 10:34:44 · 536 阅读 · 0 评论 -
Inversion of Control – An Introduction with Examples in .NET
Inversion of Control – An Introduction with Examples in .NETPosted March 29 2010 in Software architecture . 26 comments.Lately I’ve been giving a couple of presentations on the subject of au转载 2012-03-30 16:52:24 · 606 阅读 · 0 评论 -
Understanding the DIP, DI, IoC theory
Dependency Inversion Principle. Means you should always only rely on interfaces and not on their implementations. If your class depends on any other class, that's bad, because it depends on that secon转载 2012-03-30 13:42:30 · 421 阅读 · 0 评论 -
IOC-Inversion of Control, Dependency Injection
-What is? Inversion of Control: 直观的讲,就是反转控制. 这是什么意思呢?什么是控制?反转了谁的控制? 为什么要反转呢?下面来一一说一下. 1) Control: 这里指的是程序控制的流程。比如: classA::do(int a){ //do something if (a==1) { B.do()原创 2012-03-28 16:33:23 · 553 阅读 · 0 评论 -
C# 装箱 拆箱 泛型
在2005年底微软公司正式发布了C# 2.0,与C#1.x相比,新版本增加了很多新特性,其中最重要的是对泛型的支持。通过泛型,我们可以定义类型安全的数据结构,而无需使用实际的数据类型。这能显著提高性能并得到更高质量的代码。泛型并不是什么新鲜的东西,他在功能上类似于C++的模板,模板多年前就已存在C++上了,并且在C++上有大量成熟应用。 本文讨论泛型使用的一般问题,比如为什么要使用泛型、泛型转载 2012-03-14 17:03:30 · 1224 阅读 · 0 评论 -
.Net 多线程编程一例
一般来说,单线程的程序因为没有系统调度的开销,速度上比多线程的程序快,不过处理有些时间花费比较大的过程将会延迟其它时间花费较低的过程。另外,对于多 CPU 的服务器来说,多线程才能利用其多 CPU 的优势。 按照 Exchange Server 开发组的测试,一台服务器上,每个 CPU 开两个线程比较能达到最大效能。此数据可以作为经验数据,不过在实际中,还是应该令线程数量可配置,也可以根转载 2012-07-11 17:28:53 · 353 阅读 · 0 评论 -
OFFICE开发帮助
OFFICE开发帮助http://msdn.microsoft.com/zh-cn/library/bb726434(en-us).aspx添加引用:Microsoft Excel 11.0 Object Library ;添加:using Microsoft.Office.Interop.Excel;★打开Excel文件======================转载 2013-03-05 14:19:36 · 858 阅读 · 0 评论 -
What's up with BeginInvoke?
IntroductionYou are developing this shiny new multithreaded .NET application that has this spanking new UI. You are done coding and it's time for giving a demo to your boss. And while running the转载 2013-06-08 14:29:07 · 738 阅读 · 0 评论 -
Stack Walking in Xperf
Bruce Dawson is a performance analyst on the client performance team. He has written this guest post on enabling stack walking using xperf for both 32-bit and 64-bit Windows systems (Vista and Win7).转载 2013-06-15 14:01:03 · 1660 阅读 · 0 评论 -
XPerf - Windows Performance Toolkit
XPerf - Windows Performance ToolkitEvent Tracing for Windows has been with us since Windows 2000. It is an infrastructure for raising events from various system components, and has only been used b转载 2013-06-15 13:51:08 · 2751 阅读 · 0 评论 -
应用程序性能分析利器 —— Visual Studio Profiler
有一种速度叫做龟行,有一种感觉叫做无法忍受,有一种愿望叫做性能提升,有一种困难叫做寻找瓶颈。 所有人都希望自己的程序能够飞速运行,但是性能的提升又是何等艰辛,就连起步都那么困难。浩如烟海的代码,哪一段才是性能提升的关键?哪一段才是程序运行的瓶颈?难道你只能通过在每个函数前后都添加一段时间输出来寻找耗时最长的函数吗?你应当相信,在这个信息化的时代,在这个效率为先的时代,也许每一个需要重复的工转载 2013-06-15 21:18:48 · 1232 阅读 · 0 评论 -
C#综合揭秘——细说多线程(上)
引言 本文主要从线程的基础用法,CLR线程池当中工作者线程与I/O线程的开发,并行操作PLINQ等多个方面介绍多线程的开发。 其中委托的BeginInvoke方法以及回调函数最为常用。 而 I/O线程可能容易遭到大家的忽略,其实在开发多线程系统,更应该多留意I/O线程的操作。特别是在ASP.NET开发当中,可能更多人只会留意在客户端使用Ajax或者在服务器端使用UpdatePan转载 2013-06-18 22:44:44 · 663 阅读 · 0 评论 -
C# Multi-Threading In A GUI Environment
C# Multi-Threading In A GUI EnvironmentIntroductionHi everyone, and welcome to this spur of the moment tutorial!Aim of this tutorialThe aim of this tutorial is to provide insight i转载 2013-06-08 14:33:19 · 1217 阅读 · 0 评论 -
C#综合揭秘——细说多线程(下)
引言 本文主要从线程的基础用法,CLR线程池当中工作者线程与I/O线程的开发,并行操作PLINQ等多个方面介绍多线程的开发。 其中委托的BeginInvoke方法以及回调函数最为常用。 而 I/O线程可能容易遭到大家的忽略,其实在开发多线程系统,更应该多留意I/O线程的操作。特别是在ASP.NET开发当中,可能更多人只会留意在客户端使用Ajax或者在服务器端使用UpdatePan转载 2013-06-18 22:46:14 · 825 阅读 · 0 评论 -
UI开发时, UI消息处理过程混乱的解决方法
最近修了一个Bug, 发现在.net 框架下, 消息处理的函数混乱, 导致一些不可预知的错误产生,比如当一个Datagrid view 的cell还在编辑的过程中的时候, 其他的消息处理函数对这个cell 进行了重新写内容的操作,会造成程序的Crash. The exceptio原创 2011-08-24 13:43:44 · 763 阅读 · 0 评论 -
Windows消息队列 UI线程,窗口以及消息处理方式总结
windows消息处理机制是这样的: 首先Windows OS 把来自硬件(鼠标,键盘等消息)和来自应用程序的消息放到一个OS系统消息队列中去, 而应用程序需要有自己的消息队列,也就是线程消息队列,每一个线程有自己的消息队列,对于多线程的应用程序就有和线程数目相等的线程消息队列. windows消息队列把得到的消息发送到线程消息队列, 线程消息队列每次取出一条消息发送到指定窗口,不断循环直到程序退出.这个循环就是靠消息环while(GetMessage() ){ TranslateMessage()原创 2011-04-08 16:45:00 · 1530 阅读 · 0 评论 -
Set XML tag name for Serialization
<br />using System;<br />using System.IO;<br />using System.Xml.Serialization;<br /><br />public class Serializer {<br /><br /> public static void Main(string [] args) {<br /> Personnel personnel = CreatePersonnel();<br /> XmlSerializer serializer =转载 2011-03-02 14:07:00 · 516 阅读 · 0 评论 -
C#中的序列化(Serialize)、反序列化(Deserialize)
<br /> 序列化又称串行化,是.NET运行时环境用来支持用户定义类型的流化的机制。其目的是以某种存储形成使自定义对象持久化,或者将这种对象从一个地方传输到另一个地方。<br /> .NET框架提供了两种串行化的方式:1、是使用BinaryFormatter进行串行化;2、使用SoapFormatter进行串行化;3、使用XmlSerializer进行串行化。第一种方式提供了一个简单的二进制数据流以及某些附加的类型信息,而第二种将数据流格式化为XML存储;第三种其实和第二种差不多也是X原创 2011-03-02 13:53:00 · 670 阅读 · 0 评论 -
C#自定义事件的步骤介绍
C#自定义事件的步骤介绍本文简要介绍了C#自定义事件的的五个步骤。通常C#自定义事件有下面的几个步骤: 1、声明一个delegate: (用于事件的类型的定义) 如:public delegate void 事件名称EventHandler(object serder, EventArgs e); //事件名称用你的自己的来代替,随后的EventHandler是C#的建议命名规范,当然如果你不想遵守,可以使用任何字符甚至可以不要。 如果你想自定义事件的参数EventArgs,你可以从这个类派生你转载 2011-03-03 13:27:00 · 533 阅读 · 0 评论 -
C#:代表(delegate)和事件(event) (转)
<br />代表(delegate):<br /> 它是C#语言里面的函数指针,代表可以指向某一个函数,在运行的时候调用这个函数的实现。下面来看看它的实现步骤:声明一个delegate对象。 实现和delegate具有相同参数和返回值的函数实现(可以是静态和非静态的)。 产生一个delegate对象的时候,把你刚刚实现的函数作为参数传给他的构造函数。 <br />请看下面例子:<br />using System;<br />using System.Collections.Gene转载 2011-03-03 13:29:00 · 404 阅读 · 0 评论 -
C#消息处理机制
<br />一、消息概述 <br /><br /> Windows下应用程序的执行是通过消息驱动的。消息是整个应用程序的工作引擎,我们需要理解掌握我们使用的编程语言是如何封装消息的原理。 <br /><br />1 什么是消息(Message) <br /><br /> 消息就是通知和命令。在.NET框架类库中的System.Windows.Forms命名空间中微软采用面对对象的方式重新定义了Message。新的消息(Message)结构的公共部分属性基本与早期的一样,不过它是面原创 2011-03-03 13:43:00 · 1290 阅读 · 0 评论 -
C#控件中的KeyDown、KeyPress 与 KeyUp事件浅谈
<br />研究了一下KeyDown,KeyPress 和 KeyUp 的学问。让我们带着如下问题来说明:<br />1.这三个事件的顺序是怎么样的?<br />2.KeyDown 触发后,KeyUp是不是一定触发?<br />3.三个事件的定义<br />4.KeyDown、KeyUp 和KeyPress 之间的区别<br />5.如何区分是否按的是小键盘?<br />6.PrScrn按键三个事件能够捕获吗?<br />7.{菜单键}和{开始键}KeyPress能够捕获吗?<br转载 2011-03-11 10:06:00 · 2019 阅读 · 1 评论 -
c# Invoke和BeginInvoke 区别
c# Invoke和BeginInvoke 区别 转自http://www.cnblogs.com/c2303191/articles/826571.htmlControl.Invoke 方法 (Delegate):在拥有此控件的基础窗口句柄的线程上执行指定的委托。Control.BeginInvoke 方法 (Delegate) :在创建控件的基础句柄所在线程上异步执行指定委托。(一)Control的Invoke和BeginInvoke我们要基于以下认识:(1)C原创 2011-03-25 14:23:00 · 460 阅读 · 0 评论 -
windows的消息队列与消息循环
这篇文章很好的回答以下几个问题:1 Windows中的消息队列是属于线程的还是窗口的? 消息队列是属于线程的,窗口本身并不拥有消息队列,窗口的消息处理是从创建该窗口的线程消息队列中取出后送到相应窗口的处理函数2 只有有窗口的线程才有消息队列吗? 不是,只要该线程中有处理消息的code,就会有消息队列3 UI thread是一个特殊的线程吗 不是,没有任何证据表明微软为UI thread作了任何特殊的处理转载 2011-04-02 13:01:00 · 1761 阅读 · 0 评论 -
dot Net 线程相关问题
把遇到过的对.Net线程的一些问题和误解集中起来和大家分享,也希望大家能一起补充,热烈欢迎讨论<br /><br /><br />目录<br /><br /><br /> <br />基础篇怎样创建一个线程受托管的线程与 Windows线程前台线程与后台线程名为BeginXXX和EndXXX的方法是做什么用的 异步和多线程有什么关联<br />WinForm多线程编程篇我的多线程WinForm程序老是抛出InvalidOperationException ,怎么解决?Invoke,BeginInvoke转载 2011-04-02 13:06:00 · 753 阅读 · 0 评论 -
细说UI线程和Windows消息队列
<br />细说UI线程和Windows消息队列<br />注:<br /> 由于本人对Windows底层机理了解不深,本文如有错误,敬请指正。<br /> 金旭亮<br /> <br />================================================<br /> 在Windows应用程序中,窗体是由一种称为“UI线程(User Interface Thread)”的特殊类型的转载 2011-04-02 13:22:00 · 561 阅读 · 0 评论 -
windows消息处理过程---消息pump
<br />消息泵也就是消息(处理)循环 (Message Loop),每个基于事件驱动编写出来的 Windows 程序都应该有一个。 消息循环(Message Loop)是程序的心脏,保证程序的正常运行,它的形状大概如下面的结构。<br />while (true)<br />{<br />// 内部处理<br />}<br />可见,它应该是不断循环的一段代码, 打破它的循环可以有条件的使用 break 。<br />消息(处理)循环的首要任务当然就是检测消息队列中的消息了,你有两个选择,就转载 2011-04-02 17:36:00 · 1088 阅读 · 0 评论 -
Windows消息处理机制--详细代码说明
Windows消息处理机制 <br /> 消息队列中的本窗口大量消息并不会被自动取出,也没有自动地调用WinProc函数对消息加以处理,但是,Window系统提供了三个API函数给我们,让我们自己去完成这件事。看吧!<br />GetMessage( …);<br />TranslateMessage(…);<br />DispatchMessage(…);<br /> 下面就让我分别对这三个函数解释解释。<br /><br />1原创 2011-04-02 17:48:00 · 746 阅读 · 0 评论 -
剖析Windows消息处理机制
这篇文章主要描述了Windows操作系统的消息传递机制,并且给出了WM_command wm_notify不进入线程的消息队列,而且还给出了相关的试验程序,是一篇比较不错的文章转载 2011-04-03 16:35:00 · 778 阅读 · 0 评论 -
Windows 消息分类
<br /><br /><br /> <br />Windwos message传递示意图<br /><br /><br /><br />1 Windows消息按照产生后所走的路经可以分为队列消息和非队列消息。<br /> 队列消息:系统产生的消息后首先进入程序的线程消息队列,并且每次从消息队列中取出消息后分发到相应的Window procedure来处理,其典型的流程如下:<br />MSG msg;<br /> while( GetMessage(&msg, NULL, 0, 0) )<原创 2011-04-03 18:06:00 · 1316 阅读 · 0 评论 -
Supporting Asynchronous IO Operations with .NET Framework 4.5
In the earlier versions of .NET framework, writing code to perform asynchronous IO operations was not possible and hence the IO operations had to be synchronous. The problems that the developers were转载 2013-06-19 23:05:34 · 895 阅读 · 0 评论