随笔分类 -  .NET 技术

微软示例代码 for ManualResetEvent
摘要:ManualResetEvent 用于线程同步,通知一个或多个线程某事件已经发生,通常用于一个线程执行的任务必须在其他线程的任务执行之前完成。 状态分为两种:终止状态和非终止状态。当某一任务完成时,将ManualResetEvent设置为终止状态,这样其他等待的线程(一个或多个)将开始执行自己的任务。 一旦它被终止,它将保持终止状态,... 阅读全文

posted @ 2012-06-28 16:47 SkySoot 阅读(465) 评论(0) 推荐(0) 编辑

AutoResetEvent and ManualResetEvent
摘要:AutoResetEvent and ManualResetEvent 的初始化 两者初始化时可以接受一个 bool 类型值作为构造函数的参数. false: 无信号 (非终止状态) true: 有信号 (终止状态) /// <summary> /// 注释为程序执行流 /// </summary> public partial class Form1 ... 阅读全文

posted @ 2012-06-28 16:26 SkySoot 阅读(428) 评论(0) 推荐(0) 编辑

Thread.Join() 方法
摘要:MSDN:Blocks the calling thread until a thread terminates 1. 什么是 the calling thread? 2. 什么是 a thread? 运行一个程序,即开启了一个进程和至少一个线程,干活的是线程而非进程!the calling thread 我们可以认为是MainThread(或者调用线程的线程,是不是有点绕?呵呵),a... 阅读全文

posted @ 2012-06-27 16:29 SkySoot 阅读(33458) 评论(2) 推荐(2) 编辑

使用委托异步调用方法让程序并行运行
摘要:通常情况下,如果需要异步执行一个耗时的操作,我们会新起一个线程,然后让这个线程去执行代码。但是对于每一个异步调用都通过创建线程来进行操作显然会对性能产生一定的影响,同时操作也相对繁琐一些。.NET 中可以通过委托进行方法的异步调用,就是说客户端在异步调用方法时,本身并不会因为方法的调用而中断,而是从线程池中抓取一个线程去执行该方法,自身线程(主线程)在完成抓取线程这一过程之后,继续执... 阅读全文

posted @ 2012-06-27 14:02 SkySoot 阅读(887) 评论(0) 推荐(1) 编辑

C# 消息处理机制及自定义过滤方式
摘要:一、消息概述 Windows 下应用程序的执行是通过消息驱动的。消息是整个应用程序的工作引擎,我们需要理解掌握我们使用的编程语言是如何封装消息的原理。 1. 什么是消息(Message) 消息就是通知和命令。在.NET框架类库中的System.Windows.Forms命名空间中微软采用面对对象的方式重新定义了Message。新的消息(Message)结构的公共部分属性基本与... 阅读全文

posted @ 2012-04-05 21:03 SkySoot 阅读(5991) 评论(3) 推荐(3) 编辑

C# 中的委托和事件(详解)
摘要:C# 中的委托和事件 委托和事件在 .NET Framework 中的应用非常广泛,然而,较好地理解委托和事件对很多接触 C# 时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里堵得慌,浑身不自在。本章中,我将由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.NET Framework 中的委托和事件、... 阅读全文

posted @ 2012-04-05 20:02 SkySoot 阅读(42033) 评论(29) 推荐(46) 编辑

C# 多线程(lock,Monitor,Mutex,同步事件和等待句柄)
摘要:本篇从 Monitor,Mutex,ManualResetEvent,AutoResetEvent,WaitHandler 的类关系图开始,希望通过本篇的介绍能对常见的线程同步方法有一个整体的认识,而对每种方式的使用细节,适用场合不会过多解释。 让我们来看看这几个类的关系图: 1. lock 关键字 lock 是 C# 关键词,它将语句块标记为临界区,确保当一个线程位于... 阅读全文

posted @ 2012-04-02 20:57 SkySoot 阅读(13639) 评论(0) 推荐(5) 编辑

C# 多线程的自动管理(线程池)
摘要:在多线程的程序中,经常会出现两种情况: 1. 应用程序中线程把大部分的时间花费在等待状态,等待某个事件发生,然后给予响应。这一般使用 ThreadPool(线程池)来解决。 2. 线程平时都处于休眠状态,只是周期性地被唤醒。这一般使用 Timer(定时器)来解决。ThreadPool 类提供一个由系统维护的线程池(可以看作一个线程的容器),该容器需要 Windows 2000 以上系统支持,因为其中某些方法调用了只有高版本的Windows 才有的 API 函数。将线程安放在线程池里,需使用 ThreadPool.QueueUserWorkItem() 方法,该方法的原型如下: // 将一... 阅读全文

posted @ 2012-04-01 19:42 SkySoot 阅读(46942) 评论(0) 推荐(4) 编辑

.NET 调用存储过程详解
摘要:配置 App.config (注: 本文使用 Northwind 数据库为例)<?xml version="1.0" encoding="utf-8" ?><configuration> <connectionStrings> <add name="NorthwindConnectionString" connectionString="Data Source=.;Initial Catalog=Northwind;Integrated Security=True" pro 阅读全文

posted @ 2012-02-10 13:15 SkySoot 阅读(4709) 评论(0) 推荐(0) 编辑

Web Service 基本概念和技术应用
摘要:(一) Web Service 技术的名词解释往往某一知识点的基本概念总是枯燥而乏味的,但若能花费些时间好好的理解,也能获益匪浅.Web Service 也称作 XML Web Service,是一种可以接收从 Internet 或 Intranet 上的其它系统中传递过来的请求,是轻量级的独立的通讯技术.通过 SOAP 在 Web 上提供软件服务,使用 WSDL 文件进行说明,通过 UDDI 进行注册. XML – (Extensible Markup Language) 可扩展型标记语言.面向短期的临时数据处理,面向万维网络,是 SOAP 的基础. SOAP – (Simple Objec 阅读全文

posted @ 2011-11-24 10:53 SkySoot 阅读(1207) 评论(0) 推荐(0) 编辑

Web Service 简单应用,创建及调用过程(图文)
摘要:(一) WebService 应用的创建首先,打开VS2005,打开"文件-新建-网站",选择"ASP.NET Web服务" 查看Service.cs代码,你会发现VS.Net 2005已经为Web Service文件建立了缺省的框架。原始代码为:using System;using System.Linq;using System.Web;using System.Web.Services;using System.Web.Services.Protocols;using System.Xml.Linq;[WebService(Namespace = 阅读全文

posted @ 2011-11-22 14:32 SkySoot 阅读(1933) 评论(0) 推荐(1) 编辑

导航