代码改变世界

阅读排行榜

C# 线程手册 第二章 .NET 中的线程 线程的生命周期

2012-01-15 21:51 by DanielWise, 7879 阅读, 收藏,
摘要: 当一个线程计划执行时它可以经过几个状态,包括未开始,活跃,睡眠,等等。线程类包含几个允许你启动、停止、恢复、退出、暂停以及等待一个线程的方法。我们可以使用ThreadState属性来获取线程的当前状态,状态值可能是ThreadState枚举中的一个:Aborted - 线程当前处理停止状态,但是不一定已经执行完。AbortRequested – 已经调用Abort() 方法但是线程还没有接收到将试图终止线程的System.Threading.ThreadAbortexception。虽然线程还没有停止,但是马上就会。Background - 线程在后台执行。Running - 线程已经启动而且 阅读全文

SQLite - 我所认识的数据库引擎

2013-01-04 06:17 by DanielWise, 7832 阅读, 收藏,
摘要: SQLite 是一款轻量级的、被设计用于嵌入式系统的关联式数据库管理系统。SQLite 是一个实现自我依赖、纯客户端、零配置且支持事务的数据库引擎。它由D. Richard Hipp首次开发,目前已是世界上最广泛部署的开源数据库引擎。 本文中,我们将介绍如下内容:创建一个SQLite 数据库SQLiteConnection conn = new SQLiteConnection("Data Source=mytest.s3db");conn.Open();SQLite 数据插入/// <summary>/// Allows the programmer to e 阅读全文

C# 线程手册 第三章 使用线程 小心死锁

2012-02-11 22:14 by DanielWise, 6497 阅读, 收藏,
摘要: 尽管使用线程同步对线程安全来说是必须的,但是如果没有用好的话就可能导致死锁。因此,理解什么是死锁并知道如何避免死锁是非常重要的。当两个或两个以上的线程等待两个或多于两个锁被释放然后程序中的逻辑导致锁永远都不会被释放时死锁就发生了。图3描述了一个典型的死锁场景。图3在上图中,线程1获得通过进入一个对象的关键区域获得这个对象的锁L1。在关键部分中线程1想要获取锁L2。线程2获得锁L2同时还想获得锁L1。所以,现在线程1无法获得锁L2而线程2无法获得锁L1,因为这两个线程彼此拥有对方需要的锁而又不会释放它们。结果是两个线程都进入无限等待或者死锁。阻止潜在的死锁发生的最好的方式是避免在同一时间获取多个 阅读全文

WCF 第四章 绑定 wsHttpBinding

2010-11-24 14:54 by DanielWise, 6465 阅读, 收藏,
摘要: wsHttpBinding对WS-* 标准的支持一直贯穿于WCF架构中。wsHttpBinding绑定是这个支持的一个例子。这个绑定提供了在异构平台上交互通信的能力同时提供了高级架构级别的协议,比如安全,可信赖消息和事务。wsHttpBinding绑定是.NET Framework 3.0 的默认绑定,当你需要基于网络服务的交互通信时。下面的代码显示了wsHttpBinding绑定的地址格式:http://{hostname}:{port}/{service location}https://{hostname}:{port}/{service location}http协议的默认端口是80而 阅读全文

C# 线程手册 第三章 使用线程 ReaderWriterLock 类

2012-02-07 21:53 by DanielWise, 6091 阅读, 收藏,
摘要: 一个ReaderWriterLock 类定义一个实现单写多读语义的锁。这个类通常用在能被多个线程读取但是仅能被一个线程写入的文件操作时使用。下面是ReaderWriterLock类中的四个主要方法: a. AcquireReaderLock(): 这个重载方法获取一个读者锁,接受一个整型或者TimeSpan类型的timeout 值。timeout是一个检测死锁的利器。 b. AcquireWriterLock(): 这个重载方法获取一个写者锁,接受一个整型或者TimeSpan类型的timeout 值。 c. ReleaseReaderLock(): 释放读者锁。 d. ReleaseWrite 阅读全文
上一页 1 2 3 4 5 6 7 8 ··· 52 下一页