- 博客(18)
- 资源 (15)
- 收藏
- 关注
原创 lock vs Monitor vs Mutex之间的区别
Consider this code:lock(myGuard){ // do some stuff that is being synchronized}the C# compiler generates the following code for youMonitor.Enter(myGuard);try{ // do some stuff that is being synch
2010-03-23 15:54:00 2151
原创 WPF中未捕获异常之处理
异常有两类,一类是主线程异常,另一类是工作线程异常。 一:主线程的未捕获异常处理起来比较简单1:首先在APP.XAML中定义一个DispatcherUnhandledException事件,如<Application x:Class="CET.ExamViewer.App" xmlns="http://schemas.microsoft.com/winfx/2006/
2010-03-19 11:00:00 7873 7
原创 多线程BUG捕捉之:匿名函数带来的问题
最近有一个隐藏的BUG,是因为使用匿名函数导致的。 要重现该BUG,可以先查看如下两个程序。 第一个: class Program { static void Main(string[] args) { for (int i = 0; i { D
2010-03-16 18:15:00 2134 1
原创 多线程BUG捕捉之:由于其他线程拥有此对象,因此调用线程无法对其进行访问
以下论述只适用于WPF和WCF场合。 在进行WCF通信的时候,有时候会出现“由于其他线程拥有此对象,因此调用线程无法对其进行访问”。如下面的这段代码就可能会出现这个错误: EndpointAddress tcpAddress = new EndpointAddress(new Uri(_wcfServiceUri), identity, headers)
2010-03-16 18:09:00 5158 1
原创 多线程BUG捕捉之:非网络原因导致的WCF连接超时
最近在用WPF、WCF做全双工通信,由于某一天晚上比较累了,所以未遵循少量重构的原则,重构了几大段自己认为没有问题的代码,并且,重构完毕仅编译通过,未进行测试。结果代码到了第二天运行的时候出现了问题: 发送到 net.tcp://192.168.0.96:9999/HelloWCFService 的请求操作在配置的超时(00:00:04.9979999)内未收到回复。分配
2010-03-16 07:32:00 4992 1
原创 C#老生常谈之const与static readonly只区别
1:const在编译期间赋值,static readonly在运行期间赋值。2:第二点对程序员来说才是最重要的,const只可修饰基础型别,在修饰类的时候,只可赋值为null。而static readonly无此限制。
2010-03-14 17:27:00 652
原创 C#老生常谈之访问修饰符
很奇怪的一点是,网上搜索了一些访问修饰符的资料,居然有些是错误的。现归纳如下:类的访问修饰符(非内部内)private: 不可用protected: 不可用protected internal: 不可用internal: 限定与本Assembly内public: 无限制默认:=internal 类成员的访问修饰符private: 限定于本类protected: 限定与派
2010-03-14 17:23:00 721
原创 使用类来代替enum
enum的缺点在于1:无状态说明。如果要使用状态属性,还需要加上属性值。见http://blog.csdn.net/luminji/archive/2009/02/19/3912239.aspx。2:无法进行型别检查。 现通过如下的方法可以用class来代替enumclass ClientInfo { public static readonly C
2010-03-10 17:00:00 1359
原创 使用数字证书技术来保证WCF传输中的数据加密
最近团队内研究了WCF的传输及安全,同时打算应用到实际系统中去。涉及到实际使用,就必须要考虑数据传输的安全通道和数据的加解密。故本示例完成:1:客户端和服务器双向通信;2:客户端和服务器端双向验证对方的数字证书;3:信息传输使用数字证书加密。 源码下载地址:http://download.csdn.net/source/2113588
2010-03-10 14:31:00 3987
原创 C#大文件传输之SOCKET同步、异步、WCF同步、异步
当前的项目,正好急需要在C#下实现高效率的文件传输,故,写了如下DEMO对此进行了比较。该示例,整合了C#文件传输中的SOCKET同步、异步、WCF同步、异步,并分别提供了进度条,以便查看各类传输的效率(SOCKET同步>SOCKET异步>WCF同步>WCF异步)。运行的时候,需要自己在运行目录下添加一个可供传输的文件。可查看源码获取该文件名。 源码下载地址:http://download
2010-03-10 14:17:00 7313 4
原创 silverlight的MD5、对称加解密及字符串、文件HASH
silverlight直到发展到SL3,个人感觉加解密这块做的还是有点弱。这是项目中当前用到的MD5、对称加解密及字符串、文件HASH的DEMO。 源码下载地址:http://download.csdn.net/source/2113491
2010-03-10 14:14:00 2032
原创 在C#中实现ObservableDictionary
在当前的.NET FRAMEWORK中是没有实现了INotifyCollectionChanged和INotifyPropertyChanged的字典集合的,这直接导致了WPF或者SILVERLIGHT中的LISTVIEW等控件不能动态显示集合中的更新。故,我们需要自己实现一个ObservableDictionary。 代码下载地址:http://download.
2010-03-09 15:59:00 4167
原创 WPF跨线程访问线程安全的数据(如解决:该类型的CollectionView不支持从调度程序线程以外的线程对其SourceCollection)
典型应用场景:WPF页面程序中,ListView的ItemsSource是一个ObservableCollection;操作:另起一个线程,为ListView动态更新数据,也就是给ObservableCollection添加记录。这类操作,就是跨线程访问线程安全的数据,如果不使用Dispatcher,就会导致出错“该类型的CollectionView不支持从调度程序线程以外的线程对其Sourc
2010-03-07 13:05:00 21125 10
原创 WPF中ListView绑定Dictionary,顺带提右键菜单和checkbox
Dictionary需要指定的Value是一个Object,如Student类。ListView需要支持右键菜单。每个条目要有Checkbox表示是否选中。 给出前台代码:<Page x:Class="CET.ExamViewer.PageControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/pres
2010-03-04 11:24:00 8106
转载 WCF中同步和异步通讯总结
我这样分个类: WCF中, 以同步、异步角度考虑通讯的方式分为四种:跨进程同步、跨进程异步、发送队列端同步、发送队列端异步。之所以造成这样的结果源于两个因素,一个是传统概念上的同异步,一个是对于WCF方法自定义属性OperationContract中IsOneWay是True还是False的选择。 记住下面的结论: 1:IsOneWay配置为False 当一个WC
2010-03-02 11:44:00 2736 3
转载 多线程服务器的适用场合
陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice 2010 Feb 28这篇文章原本是前一篇博客《多线程服务器的常用编程模型》(以下简称《常用模型》)计划中的一节,今天终于写完了。“服务器开发”包罗万象,本文所指的“服务器开发”的含义请见《常用模型》一文,一句话形容是:跑在多核机器上的 Linux 用户态的没有用户界面的长期运行的网络应用
2010-03-02 09:07:00 618
转载 多线程服务器的常用编程模型
多线程服务器的常用编程模型 陈硕 (giantchen_AT_gmail)Blog.csdn.net/Solstice2009 Feb 12 建议阅读本文 PDF 版下载: http://files.cppblog.com/Solstice/multithreaded_server.pdf 本文主要讲我个人在多线程开发方面的一些粗浅经验。总结了一两种常用的线程
2010-03-02 08:07:00 952
转载 Silverlight Navigation(多页面切换、传值)
导航.简单的理解可以是从一个页面跳转到另外一个页面。在传统的ASP.NET网站中这种效果很容易实现。而在Silverlight中我们也同样可以,我们有两种方法来实现这个效果。 第一个选择是使用代码更改页面视图(修改容器Content属性),移除/添加User Control来实现导航,这个方法比较简单、直接代码量也很少。并且在这个过程中还可以加入动画、变形等效果。 第二个选择就是使用Sil
2010-03-01 14:51:00 4940 1
C#特性Attribute的实际应用之:代码统计分析
2010-12-29
C#特性Attribute的实际应用之:为应用程序提供多个版本
2010-11-29
C#借助Code UI Automation实现黑盒自动化测试工具
2010-11-17
C#自动化测试工具编写(借助API)
2010-10-30
高并发操作SQLSERVER的解决方案
2010-08-19
C#创建数字证书并导出为pfx,并使用pfx进行非对称加解密
2010-06-10
remoting宿主到IIS中
2010-05-25
使用证书进行加密传输的WCF
2010-03-10
C#大文件传输之SOCKET同步、异步、WCF同步、异步
2010-03-10
silverlight的MD5、对称加密及HASH
2010-03-10
在C#中实现ObservableDictionary
2010-03-09
Silverlight通过WebService上传大文件(含进度条)
2009-12-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人