随笔分类 - c#技术
            
    # ThreadPool类简介
    
            
            
        
摘要:C#语言有很多值得学习的地方,这里我们主要介绍C# ThreadPool类,包括介绍ThreadPool.QueueUserWorkItem()方法等方面。 在多线程的程序中,经常会出现两种情况: 一种情况: 应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应,这一般使用ThreadPool(线程池)来解决; 另一种情况:线程平时都处于休眠状态,只是周期性地被唤醒,这一般使用Timer(定时器)来解决; C# ThreadPool类提供一个由系统维护的线程池(可以看作一个线程的容器),该容器需要 Windows 2000 以上系统支持,因为其中某些方法调用了只有高
        阅读全文
            
        
            
    Interlocked.Increment 方法 和Interlocked.Decrement 方法作用
    
            
            
        
摘要:Interlocked.Increment 方法:让++成为原子操作;Interlocked.Decrement 方法让--成为原子操作。什么叫原子操作呢。就是不会被别人打断,因为C#中的一个语句,编译成机器代码后会变成多个语句。在多线程环境中,线程切换有可能会发生在这多个语句中间。使用Interlocked.Increment,Interlocked.Decrement 可以避免被打断,保证线程安全。使用Interlocked.Increment 方法和Interlocked.Decrement 方法MSND例子:using System;using System.Threading;cla
        阅读全文
            
        
            
    指在一线程里面调用另一线程join方法时,表示将本线程阻塞直至另一线程终止时再执行
    
            
            
        
摘要:指在一线程里面调用另一线程join方法时,表示将本线程阻塞直至另一线程终止时再执行例子如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace ConsoleApplication7{ class Program { static void Main(string[] args) { Thread x = new Thread(new ThreadStart(f1)); x.Start(); Console.Write
        阅读全文
            
        
            
    GDI+需要Dispose的对象(不断更新中)
    
            
            
        
摘要:1、Font2、Bitmap3、Graphics4、Pen
        阅读全文
            
        
            
    在C#中ParameterizedThreadStart和ThreadStart区别
    
            
            
        
摘要:在C#中ParameterizedThreadStart和ThreadStart区别不需要传递参数,也不需要返回参数  我们知道启动一个线程最直观的办法是使用Thread类,具体步骤如下:ThreadStart threadStart=new ThreadStart(Calculate);Thread thread=new Thread(threadStart); thread.Start();public void Calculate() {  double Diameter=0.5;  Console.Write("The Area Of Circle with a Diameter of
        阅读全文
            
        
            
    【转】Invoke 和 BeginInvoke 的区别
    
            
            
        
摘要:讨论环境:C# 、.net、VS2005.net默认所有的可视窗体在主线程内维护,如果某工作线程(主线程之外)想实现对窗体控件的操作,缺省情况下是不允许直接操作的,而要通过 Invoke 方法将其封送到主线程去完成。在Control 类内提供了 Invoke 和 BeginInvoke 两个方法实现该功能,MSDN 帮助中提到,它们的唯一区别是 BeginInvoke 多了“异步执行”四个字。(两方法的具体帮助请自行查看MSDN,这里不多罗嗦了)。“异步执行”怎么理解,查了网上的一些解答,通过Reflector查看了两方法的背后源码后,得出如下结论:Invoke 引起工作线程的阻塞,Begin
        阅读全文
            
        
            
    .net 我的文档路径获取
    
            
            
        
摘要:Environment.GetFolderPath(Environment.SpecialFolder.Personal)
        阅读全文
            
        
            
    【转】C# 中的委托和事件
    
            
            
        
摘要:转载自:http://www.cnblogs.com/JimmyZhang/archive/2007/09/23/903360.html源码下载:http://www.tracefact.net/SourceCode/Delegates-and-Events-in-CSharp.rar引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不...
        阅读全文
            
        
            
    c# Default关键字
    
            
            
        
摘要:1、在switch语句中,如果没有任何 case 表达式与开关值匹配,则控制传递给跟在可选 default 标签后的语句。如果没有 default 标签,则控制传递到 switch 以外。 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-- intid=...
        阅读全文
            
        
            
    GDI+ 相对form窗口的坐标和相对于显示器的屏幕坐标的转换
    
            
            
        
摘要:private void Form1_MouseDown(object sender, MouseEventArgs e)//获取的是相对form窗口的坐标。(延伸一下就是相对于绑定事件的控件的坐标) { int x = e.X; int y = e.Y; }private void Form1_DoubleClick(object sender, EventArgs e)//这样是获取相对显示器...
        阅读全文
            
        
            
    【笔记】C#using的用法小结
    
            
            
        
摘要:C#关键字的用法不单只有一种方法的。现在我总结了一下Using和New的用法,顺便巩固下自己的知识。 Using (1)引用命名空间 using作为引入命名空间指令的用法规则为: using Namespace; 在.NET程序中,最常见的代码莫过于在程序文件的开头引入System命名空间,其原因在于System命名空间中封装了很多最基本最常用的操作,下面的代码对我们来说最为熟悉不过: using...
        阅读全文
            
        
            
    【读书笔记】备忘录模式
    
            
            
        
摘要:备忘录:在不破坏封装的前提下,在对象外部保存对象的状态,这样可将该对象恢复到原先保持的状态!状态模式一般有三个类,第一个类Orginator(发起人):负责创建一个备忘录,用以记录当前时刻他的内部状态,并可以用备忘录回复内部状态,Originator可以根据需要决定Memento存储Originator的哪些内部状态。第二个类Memento(备忘录):负责存储Originator对象的内部状态,并...
        阅读全文
            
        
            
    【读书笔记】适配器模式C#代码
    
            
            
        
摘要:使用适配器模式的情况:使用一个已经存在的类,但如果它的接口,也就是它的方法和你的要求不同时,就应该考虑用适配器。也就是说两个类所做的事情相同或者相似,但具有不同的接口而且双方都不太容易修改时使用适配器模式。这样客户端代码就一个统一调用接口了,这样应该可以更简单,更直接,更紧凑!代码下载:/Files/cappuccino/AdapterModel.rar
        阅读全文
            
        
            
    【读书笔记】状态模式代码C#
    
            
            
        
摘要:当一个对象的行为取决于他的状态,并且它必须时刻根据状态改变他的行为的时候,就可以考虑用状态模式了。状态模式代码(c#):/Files/cappuccino/StateModel.rar
        阅读全文
            
        
            
    【读书笔记】用反射+抽象工程模式实现多数据库的访问程序
    
            
            
        
摘要:今天在上传代码的同时试着写点东西,请大家指教,哈!反射简单说起来就是 Assembly.Load(" 程序集名称").CreateInstance("命名空间.类名称")获取一个“类名称"的对象(使用时添加using System.Reflection命名空间)。由于Load()和CreateInstance()中的参数是字符串所以可以直接将其配置在配置文件中,这样就可以通过配置来实现...
        阅读全文
            
        
            
    【读书笔记】抽象工厂模式代码
    
            
            
        
摘要:抽象工厂模式使得她让具体的过程与客户端分离,该模式使用恰当的话会比较好的遵守 开放-封闭原则,依赖倒转原则。不多说了,代码:/Files/cappuccino/AbstractFactory.rarUML图:请高手多多指教。后记:等待中但我一定要加油,坚持不懈。
        阅读全文
            
        
            
    【读书笔记】观察者模式第一版C#_C++
    
            
            
        
摘要:当一个对象的状态时会改变多个对象的状态,但是改变状态的对象的个数不确定在这种情况下一般用观察者模式 C#版代码/Files/cappuccino/ObserverModelFirst.rar C++版代码:/Files/cappuccino/ObserverModelFirstForC.rar 另外
        阅读全文
            
        
            
    【读书笔记】建造者模式代码完成与大家分享
    
            
            
        
摘要:建造者模式的好处就是隐藏了产品时如何组装产品,建造者模式主要用于一些复杂的对象,内部建造的顺序是固定的,但是每部建造的过程有很大的变化.C#代码:/Files/cappuccino/BuilderModel.rar C++代码:/Files/cappuccino/BuilderModelForC.rar
        阅读全文
            
        
            
    【读书笔记】将外观模式写好了与大家分享(C#,C++)
    
            
            
        
摘要:外观模式在这些地方可以用:1、在开发初期阶段往往会对程序进行分层,层与层之间可以的交互可以用外观模式;2、在开发阶段,子系统往往会因为不断的重构而变的复杂,这时加上一个外观类往往会使开发变得简单,3、要在一个大型系统上扩展功能,也可以使用外观模式,让一部分人专门开发外观类而另一部分人用外观类提供的接口来实现新功能,以遵守开发封闭原则;3、大家分享代码 C#:/Files/cappuccino/Ex...
        阅读全文
            
        
            
    【读书笔记】模板方法模式(C#)
    
            
    
摘要:当一些应用中就各个不同的类就一些小小的细节不同的时候就用模板模式比较适合,在模板模式中就是一些细节推迟到子类中实现。下面用C#实现了模板方法,代码下载(/Files/cappuccino/TemplateModel.rar)代码中有两个工程TemplateModel是模板模式一个整体的概念,TemplateModePage是模板模式的一个具体应用,TemplateModel的UML图如下:
        阅读全文
            
        
 
                    
                     
                    
                 
                    
                 
 浙公网安备 33010602011771号
浙公网安备 33010602011771号