
C#
文章平均质量分 87
酒红
这个作者很懒,什么都没留下…
展开
-
C#事件
事件类似于异常,因为它们都由对象引发(抛出),我们可以提供代码来处理事件。而相应事件则必须先订阅(subscribe)它们。订阅一个事件的含义是提供代码,在事件发生时执行这些代码,这些代码称为事件处理程序。(C#的事件可以近似看作C++中的消息,C#中的事件处理程序对应于C++中的消息响应函数)。单个事件可提供多个处理程序订阅,在该事件发生时,这些处理程序都会被调用。其中,包括引发该事件的对象原创 2016-01-19 14:03:57 · 647 阅读 · 0 评论 -
C#构建多线程应用程序(4) —— 并发问题
在构建多线程的应用程序时,我们需要找到一种方式来控制多个线程对共享资源的同步访问。System.Threading命名空间提供了一些以同步为中心的类型。C#编程语言也提供了一个特别的关键字,它能在多线程程序中同步共享数据。使用C#的lock关键字实现线程同步同步访问共享资源的首选技术是C#的lock关键字。这个关键字允许定义一段线程同步的代码语句。Lock关键字需要定义原创 2016-02-17 10:39:30 · 972 阅读 · 0 评论 -
C#构建多线程应用程序(2) —— System.Threading命名空间
在.NET平台下,System.Threading命名空间提供了许多类型来构建多线程应用程序。这篇博客简单讲述了使用System.Threading命名空间实现多线程的方法。原创 2016-02-17 10:00:27 · 2483 阅读 · 0 评论 -
C#构建多线程应用程序(1) —— 使用委托来自动创建次线程以实现异步方法的调用
当C#编译器处理委托类型时,它先自动产生一个派生自System.MulticasrDelegate的密封类,该类定义了三个公共方法:Invoke(),BeginInvoke()和EndInvoke()。Invoke()用来以同步方式调用委托对象维护的方法,而BeginInvoke()和EndInvoke()方法能在第二个执行线程上异步调用当前的方法。尽管.NET基础类库为多线程专门原创 2016-02-16 19:41:26 · 1441 阅读 · 1 评论 -
C#构建多线程应用程序(3) —— 前台线程和后台线程
前台线程能阻止应用程序的终结。一直到所有的前台线程终止后,CLR才能关闭应用程序(即卸载承载的应用程序域),换言之,应用程序域必须运行完所有的前台线程才可以退出。后台线程(有时也叫守护线程,daemonthread),被CLR认为是程序执行中可做出牺牲的途径,即在任何时候都可能被忽略,即使这个线程此时正在执行某项工作。如果所有的前台线程终止,应用程序退出,那么所有的后台原创 2016-02-16 20:04:50 · 1010 阅读 · 0 评论 -
C#委托
Windows API经常使用C语言风格的函数指针来创建称为回调函数或简称为回调的实体。使用回调,windows开发者可以处理按钮单击、鼠标移动、菜单选择以及内存中两个实体间的双向通信。在.NET Framework里,回调功能则由更为安全和面向对象的委托(delegate)来完成。本质上来讲,委托是一个类型安全的对象,它指向程序中另一个以后会被调用的方法(或多个方法)。委托有许多原创 2016-01-26 16:10:54 · 511 阅读 · 0 评论 -
XSD- XML Schema Definition模式定义
XML Schema Definition(XSD)模式定义文件,实际上就是规定了相应的XML文件中,包含哪些元素、属性,以及这些元素和属性的排列顺序等。原创 2016-01-25 22:33:21 · 2692 阅读 · 1 评论 -
ListView列表视图控件
ListView列表视图控件通常用于显示数据,用户可以对这些数据和显示方式进行某些控制。还可以把包含在控件中的数据显示为列和行(像网格一样),或者显示为一列,或者显示为图标表示。其实列表视图控件的作用,就像我们平时浏览windows文件夹一样,可以以“列表”、“平铺”、“详细信息”、“大图标”等方式显示某一目录下的文件夹和文件。1. ListView控件的属性原创 2016-01-22 17:23:05 · 5970 阅读 · 0 评论 -
C#由指定数据生成灰度位图或者彩色位图
在C#中用已知数据创建指定大小的灰度位图或者彩色位图原创 2015-12-17 19:32:33 · 9096 阅读 · 5 评论 -
RickTextBox控件基础用法
.NET Framework内置了两个基本的控件用来提取用户输入的文本:TextBox和RickTextBox。这两个控件都派生于基类TextBoxBase,而TextBoxBase派生于Control类。TextBox控件常用于从用户获取简短的文本字符串,而RichTextBox用于显示和输入格式化的文本(例如,黑体、下划线和斜体)。RickTextBox控件使用标准的格式化文本,称原创 2016-01-21 16:14:38 · 2166 阅读 · 0 评论 -
C#隐式实现接口成员与显示实现接口成员
对C#隐式实现接口成员与显示实现接口成员的简单说明原创 2015-12-29 14:50:41 · 2988 阅读 · 0 评论 -
C#浅度复制与深度复制
1. 浅复制(shallow copy)简单地按照成员复制对象可以通过派生于System.object的MemberwiseClone()方法来完成。这个方法提供的复制功能称为浅度复制(shallow copy),因为它没有考虑引用类型成员。新对象中的引用成员就会指向与源对象中相同成员的对象。在许多情况下这并不理想。namespace Copy{ class Program原创 2016-01-11 17:07:48 · 1343 阅读 · 0 评论 -
C#构建多线程应用程序(5) —— 使用System.Threading.Timer
许多程序需要定期调用具体的方法,这种情况下可以使用System.Threading.Timer类型和相关的TimerCallback委托来实现。注意不要和System.Timer混淆了。System.Threading.Timer 其实是轻量级的定时器。TimerCallback委托的原型显示如下:public delegate void TimerCallback(obj原创 2016-02-17 11:27:40 · 1214 阅读 · 0 评论