随笔分类 -  C#

摘要:Monitor 类锁定一个对象当多线程公用一个对象时,也会出现和公用代码类似的问题,这种问题就不应该使用lock关键字了,这里需要用到System.Threading中的一个类Monitor,我们可以称之为监视器,Monitor提供了使线程共享资源的方案。 Monitor类可以锁定一个对象,一个线程只有得到这把锁才可以对该对象进行操作。对象锁机制保证了在可能引起混乱的情况下一个时刻只有一个线程可以访问这个对象。 Monitor必须和一个具体的对象相关联,但是由于它是一个静态的类,所以不能使用它来定义对象,而且它的所有方法都是静态的,不能使用对象来引用。下面代码说明了使用Monitor锁定一.. 阅读全文
posted @ 2013-07-30 15:30 Jones.Zhao 阅读(428) 评论(0) 推荐(0)
摘要:指在一线程里面调用另一线程join方法时,表示将本线程阻塞直至另一线程终止时再执行 比如 1using System; 2 3namespace TestThreadJoin 4{ 5 class Program 6 { 7 static void Main() 8 { 9 System.Threading.Thread x = new System.Threading.Thread(new System.Threading.ThreadStart(f1));10 x.Start();11 ... 阅读全文
posted @ 2013-07-29 13:01 Jones.Zhao 阅读(694) 评论(0) 推荐(0)
摘要:如果没有非必要,不在底层代码中写try catch,这样会多余,没有也会抛出异常。 阅读全文
posted @ 2013-07-17 08:55 Jones.Zhao 阅读(131) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/cuiweifu/archive/2008/03/05/1091604.html 阅读全文
posted @ 2013-06-07 16:53 Jones.Zhao 阅读(219) 评论(0) 推荐(0)
摘要:第一种最简单,但没有考虑线程安全,在多线程时可能会出问题,不过俺从没看过出错的现象,表鄙视我……publicclassSingleton{privatestaticSingleton_instance=null;privateSingleton(){}publicstaticSingletonCreateInstance(){if(_instance==null){_instance=newSingleton();}return_instance;}}第二种考虑了线程安全,不过有点烦,但绝对是正规写法,经典的一叉publicclassSingleton{privatevolatilestati 阅读全文
posted @ 2013-04-10 09:53 Jones.Zhao 阅读(160) 评论(0) 推荐(0)
摘要:些文参考本文来自CSDN博客,http://blog.csdn.net/cj205/archive/2008/12/05/3449828.aspx只是用来记录,已防止时间长了忘记,同时也可以给需要的同学用。原文写的已经很好了,只不过第3、4运行会有错误,试一下就知道了。我改造了一下。using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{ class Program { static void Main... 阅读全文
posted @ 2013-04-09 09:59 Jones.Zhao 阅读(479) 评论(0) 推荐(0)
摘要:下面是DotNet中的数据持久层框架(ORM,半ORM等)的列表: .NET Persistence BBADataObjects DataObjects.NET Data Tier Modeler for .NET DotNorm Eldorado.NET Enterprise Core Objects (ECO™) Entity Broker eXpress Persistent Objects for .NET FastObjects.NET JC Persistent Framework LLBLGen Pro ModelWorks Nhibernate Nolics.NET Norm 阅读全文
posted @ 2012-01-18 10:08 Jones.Zhao 阅读(705) 评论(0) 推荐(0)
摘要:ProcessStartInfopsi=newProcessStartInfo("cmd.exe");psi.CreateNoWindow=true;//不显示dos命令行窗口psi.UseShellExecute=false;psi.RedirectStandardOutput=true;psi.RedirectStandardError=true;psi.FileName=@"C:\Users\Jones.Zhao\Desktop\开启其它服务.bat";//StarttheprocessSystem.Diagnostics.Processproc= 阅读全文
posted @ 2011-08-04 09:44 Jones.Zhao 阅读(1885) 评论(1) 推荐(0)
摘要:NDoc 用户指南http://www.uml.org.cn/net/200702271.asp#811 阅读全文
posted @ 2011-05-31 21:35 Jones.Zhao 阅读(122) 评论(0) 推荐(0)
摘要:这里的“属性”指的是 “Attribute ”,另外一个名字是“ metadata” (元数据?)。就是嵌入在对象中的运行时信息了,可以在你的程序中在运行时检查到,便于控制你的程序如何处理数据。结合反射(Reflection)来使用可以实现很有意思的应用。 这个用法在自定义框架里面经常会看到的,就是声明类或者方法的时候在前面用 [xxxxx] 这样的中括号来定义属性 ,下面代码里面有用法了。更详细 的解释,可以去看一下(http://hi.baidu.com/widebright/blog/item/1df9d762ab9deadfe7113a81.html),这里也有一个应用的例子(http 阅读全文
posted @ 2011-04-28 09:21 Jones.Zhao 阅读(508) 评论(0) 推荐(0)
摘要:最近有个WINFORM项目要做,布局要像下面这样的。但是有一个问题,就是要判断窗口是否已打开,看了网上的一些代码,这样的:privatevoidShowNewForm(objectsender,EventArgse){if(FindDocument("BaseForm")==null){BaseFormchildForm=newBaseForm();childForm.Show(dockPanel1);}else{Formf=FindDocument("BaseForm")asForm;f.Focus();}}///在dockPanel中查找已经打开的窗 阅读全文
posted @ 2011-03-02 13:41 Jones.Zhao 阅读(1558) 评论(0) 推荐(0)
摘要:1、 定义 System.Collections.Generic.ListT类表示可通过索引访问的对象的强类型列表。提供用于对列表进行 搜索、排序和操作的方法。T为类型参数,代表列表中元素的类型。该类实现了IListT泛型接口,是ArrayList类的泛型等效类, 其大小可按需动态增加。 2.构造函数 名称 说明 ListT() 初始化 ListT 类的新实例,该实例为空并且具有默认初始容量(0)。 ListT(IEnumerableT) 初始化 ListT 类的新实例,该实例包含从指定集合复制的元素并且具有足够的容量来容纳所复制的元素。 ListT(In 阅读全文
posted @ 2011-01-05 16:56 Jones.Zhao 阅读(900) 评论(0) 推荐(1)
摘要:(1)NULL null 关键字是表示不引用任何对象的空引用的文字值。null 是引用类型变量的默认值。那么也只有引用型的变量可以为NULL,如果 int i=null,的话,是不可以的,因为Int是值类型的。 (2)""和String.Empty 这两个都是表示空字符串。只不过""理论上重新开辟内存空间,而String.Empty指向一处。不过优化器会优化的! string.Empty不分配存储空间, ""分配一个长度为空的存储空间,所以一般用string.Empty,为了以后跨平台,还是用string.empty。在 C# 中,大 阅读全文
posted @ 2011-01-04 13:20 Jones.Zhao 阅读(6188) 评论(0) 推荐(1)
摘要:熟悉.NET的开发者们应该都知道里面有一个GC.Collect()吧,它的功能就是强制对所有代进行垃圾回收。下面介绍与之相关的几个术语:何谓代?代是指托管内存中不同的区域,对象越老位于的代越靠后,比如:第一次垃圾回收后某个对象未被回收,它可能就会从0代移动到1代,以此类推。何谓垃圾?垃圾就是只没有任何对象再和他有引用关系,专业点说就是从这个对象开始找其引用,一直找,如果找到它正在引用一个根,那么这个就是不是垃圾,如果找不到根则这个对象就是垃圾。何谓根?根就是指一个存储位置,包含指向某个引用类型的指针。比如静态变量,全局变量就是根,当前寄存器里面的对象就是根,还有当前调用栈上的参数,局部变量都是 阅读全文
posted @ 2010-12-28 00:06 Jones.Zhao 阅读(24204) 评论(0) 推荐(0)
摘要:成GUID程序,C#源代码,System.Guid.NewGuid().ToString()全球唯一标识符 (GUID) 是一个字母数字标识符,用于指示产品的唯一性安装。在许多流行软件应用程序(例如 Web 浏览器和媒体播放器)中,都使用 GUID。 GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值。 为什么要使用 GUID ? 世界上的任何两台计算机都不会生成重复的 GUID 阅读全文
posted @ 2010-12-27 23:59 Jones.Zhao 阅读(564) 评论(0) 推荐(0)
摘要:(C#)方法参数关键字:ref、out、params详解 备注:以下来自MSDN和网络参考,经过整理后的文档 ref(C# 参考) ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。例如: class RefExample { static void Method(ref int i) { i = 44; } static void Main() { int val = 0; //使用ref val必须先初始化 Method(ref val) 阅读全文
posted @ 2010-12-22 10:03 Jones.Zhao 阅读(1003) 评论(2) 推荐(0)
摘要:如题,已经知道圆心和两点,画出两点间的圆弧,思路,先分别求出原点到两点向量和x轴间的夹角余弦值,然后求反余弦得出角度,这里要注意的是,求出的向量的夹角是按几何坐标系中定义的逆时针,然后用DrawArc()函数画圆弧。如图的三点:o(200,200),a(100,100),b(300,100)求夹角的方法是使用高中学过的向量求夹角公式:通过该公式,很方便地求出a,b向量的夹角的余弦值,然后使用反余弦函数求出弧长,然后用弧长radian*(180/pi)求出几何坐标系中的夹角。这个时候值得注意的是C#里面GDI+使用的坐标体系与常用的几何坐标系有所不同,所以画圆弧使用DrawArc()函数的时候要 阅读全文
posted @ 2010-12-06 12:39 Jones.Zhao 阅读(4108) 评论(0) 推荐(0)
摘要:新二到新公司上班,加入一个项目中,要我做绘图模块。所以就在网上看了好多的绘图方法。现给段代码分析一下!代码已上是一段画图的代码,注释中已写的比较清楚,有些内容,日后再补!这里附上一个教程,我是在百度文库中找来的。还不错:三层架构示意图.rar 阅读全文
posted @ 2010-11-30 14:25 Jones.Zhao 阅读(695) 评论(0) 推荐(0)
摘要:中学的数学规律题目中常常见到这样的一组数:1,1,2,3,5,8,13,21,34,55,89,144,233...。这组数在数学上,常被人们称作Fibonacci数列。1202年,意大利数学家斐波那契出版了他的《算盘全书》。他在书中提出了一个关于兔子繁殖的问题:如果一对兔子每月能生一对小兔(一雄一雌),而每对小兔在它出生后的第三个月里,又能开始生一对小兔,假定在不发生死亡的情况下,由一对出生的小... 阅读全文
posted @ 2010-11-16 15:45 Jones.Zhao 阅读(578) 评论(0) 推荐(0)
摘要:C# 2.0新特性与C# 3.5新特性 一、C# 2.0 新特性: 1、泛型List<MyObject> obj_list=new List();obj_list.Add(new MyObject()); 2、部分类(partial)namespace xxx{public partial class Class1{private string _s1;public s... 阅读全文
posted @ 2010-07-08 16:57 Jones.Zhao 阅读(295) 评论(0) 推荐(0)