代码改变世界

C# 线程手册 第六章 线程调试与跟踪 系列

2013-01-14 05:37 by DanielWise, 1276 阅读, 0 推荐, 收藏, 编辑
摘要:[第1篇] 线程调试与跟踪 调试与跟踪是两个经常使用到的技术,这两种技术对程序员是非常必要的。前者允许开发人员分析一个程序的变量值以及代码,一步一步跟踪代码流程。后者允许我们跟踪我们应用程序的行为,在一个监听器(一个日志文件,Windows 事件日志等)中显示信息。它们是创建鲁棒性应用程序的基础,因为它们给开发人员提供了一个简单的方式去跟踪并理解我们的应用程序是如何工作的。这两种技术最大的不... 阅读全文

C# 线程手册 第五章 扩展多线程应用程序 系列

2013-01-14 05:34 by DanielWise, 1013 阅读, 0 推荐, 收藏, 编辑
摘要:[第1篇] 什么是线程池 到目前为止我们使用多线程应用程序的目的是尽可能多地使用计算机处理器资源。所以,看起来我们仅需要为每个独立的任务分配一个不同的线程,并让处理器确定在任何时间它总会处理其中的某一个任务。额,对小系统来说这样做很好。但是当系统越来越复杂时,线程的数量也会越来越多,操作系统将会花费更多时间处理锁分配,理清线程之间的关系,处理程序指令的时间实际上是很少的。为了让我们的程序具备... 阅读全文

C# 线程手册 第四章 线程设计原则 系列

2013-01-14 05:28 by DanielWise, 1048 阅读, 0 推荐, 收藏, 编辑
摘要:[第1篇] 线程设计原则 大多数可扩展系统是具有高度并发性的,这意味着可能存在多个针对同一个对象的并发请求。实现一个既具有高并发性又具有线程安全性的代码是一个很大的挑战,因为这意味着当多个线程访问共享数据时,不会发生数据崩溃或者不一致的情况。[第2篇] MTA 线程模型 一个STA和一个MTA线程单元最大的不同是再同一个线程单元中可以有多个线程运行并可以使用所有共享数据。[第3篇] 线程及线程间关系 一个多线程应用程序中的线程彼此间可能关联也可能不关联。例如,在每个程序中都有一个用来生成其他子线程的主线程,所以主线程就成了所有其他线程的控制器。在一个多线程应用程序中有三种常用方法来定义线程间的 阅读全文

C# 线程手册 第三章 使用线程 系列

2013-01-14 05:20 by DanielWise, 1336 阅读, 0 推荐, 收藏, 编辑
摘要:[第1篇] 使用线程 在之前章节,我们已经讨论过线程在开发多用户应用程序时扮演的重要角色。我们已经使用线程来解决一些重要的问题,比如让多个用户或者客户端在同一时间访问同一个资源。然而,在学习过程中我们忽略了一个问题,现在到了处理这个问题的时候了:如果一个用户改变了资源的状态,同时另外一个用户也想改变同一个资源的状态的话,会发生什么?[第2篇] .NET 对同步的支持 .NET Framework 提供了很多System.Threading,System.EnterpriseService 和 System.Runtime.Compiler 命名空间中的很多类来帮助程序员开发线程安全代码。[第3 阅读全文

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

2013-01-04 06:17 by DanielWise, 7755 阅读, 11 推荐, 收藏, 编辑
摘要: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-06-17 18:31 by DanielWise, 3108 阅读, 0 推荐, 收藏, 编辑
摘要:好的,我们现在来创建服务端程序。由于目的系统的多客户端特性,我们在创建StockServer 程序时要采用一个稍微不同的方案。我们想要跟踪客户端行为并知道它们什么时候连接/断开。由于为每个客户端生成一个单一实例所以客户端管理器在这方面很高效。因此我们将要创建一个能够表示客户端连接到服务端的这个过程的一个客户类,如下图类图所示:图 4 每个连接到服务端的客户端都会创建一个新的QuoteClient 实例,所以StockServer 类和QuoteClient类有一对多的关系。QuoteClient 类总是在用来处理新创建的且连接到服务端的新生成线程中进行实例化。QuoteClient类用于一个. 阅读全文

C# 线程手册 第七章 网络和线程 创建一个客户端

2012-05-26 10:51 by DanielWise, 2663 阅读, 2 推荐, 收藏, 编辑
摘要:现在你已经对.NET 中的网络编程有了一个初步的了解,现在我们来实际讨论下本章将要实现的示例程序。这个例子的目的是通过创建一个网络应用程序来让你熟悉线程的使用。这个程序实际上由两个小的Windows 窗体程序组成,一个作为服务端而另外一个作为客户端。我们将使用Visual Studio.NET 来设计实现这些程序。设计目标 我们想创建两个交互程序。第一个是用来从一个数据库表中寻找股票交易数据然后将数据异步地返回给客户端的多线程/多用户股票交易服务程序。第二个是一个通过股票交易号来从服务端查询股票信息的客户端。所有这些都异步执行,客户端用户接口在服务端对请求作出响应时不会卡住。 在.NET F. 阅读全文

C# 线程手册 第七章 网络和线程

2012-05-06 09:59 by DanielWise, 2281 阅读, 1 推荐, 收藏, 编辑
摘要:概述 在本书的之前章节,我们已经深入地了解了C#.NET 中的线程并探讨了多线程编程中的不同概念和技术。现在你已经是一个线程专家啦,我们将要使用C#实现一个简单的多线程客户端-服务端程序并在其中使用一些我们到目前为止讨论过的概念。 多一些应用来说,高效地使用线程和异步编程是不可或缺的,比如网络通信,高效用户接口以及磁盘输入/输出等等。在所有这些情况下,如果使用单线程的话程序可能会卡死或者在等待一个操作完成的过程中崩溃。对那些网速比较慢的用户来说,一个网络程序的延迟时间是最重要的衡量标准。在本章的示例程序中,我们将要使用System.Net 命名空间并简要地了解下.NET 的网络能力,尤其是对具 阅读全文

C# 线程手册 第六章 线程调试与跟踪 DataImport 例子

2012-04-28 14:01 by DanielWise, 2444 阅读, 2 推荐, 收藏, 编辑
摘要:现在我们要集中精力实现一个实战实例来描述到目前为止我们已经看过的内容。这里要实现的DataImport 例子是那种等待文件到达指定目录然后将其导入到一个SQL Server 数据库中的典型程序。下面我们列出了这个例子中将要使用的类: FileSystemWatcher: 这个类允许开发人员监控指定目录并能够在发生改变时(比如创建一个新文件或者删除一个文件)触发事件。这个类位于System.IO 命名空间中。 TextWriterTraceListener: 实现我们自己的跟踪功能。 Thread: 已经看过很多遍了,允许我们启动一个新线程来把数据导入到数据库中。 很多SqlClient 命名. 阅读全文

C# 线程手册 第六章 线程调试与跟踪 跟踪开关

2012-04-25 21:41 by DanielWise, 2677 阅读, 3 推荐, 收藏, 编辑
摘要:当你的程序接近部署阶段时,你可能想从代码中去掉所有的跟踪和调试消息。然而,你不得不从代码中一条一条地寻找调试指令并将其去掉。对于这种情况你可以在程序编译期间使用编译标志处理。从Visual Studio.NET IDE, 你可以在解决方案管理窗口右键工程名->从菜单页选择属性。如下图对话框显示: 你只需要简单地将定义调试常量和跟踪常量选项勾掉,重新编译解决方案,所有的跟踪和调试代码都将会被从应用程序中被去掉。 为了去掉跟踪功能,你可以使用csc.exe 命令行编译器。在编译时使用/d:TRACE=FALSE /d:DEBUG=FALSE 开关。 对跟踪代码添加开关功能... 阅读全文
上一页 1 2 3 4 5 6 ··· 26 下一页