关闭

C#线程学习笔记2

1.当线程访问同一资源时,需要加锁。 C#中加锁的方法是用lock关键字来执行:lock(objectLocker){codeB} 对于(objectLocker)的要求,最好使用private static readonly 的内部变量。不能使用this,因为在一个线程中如果执行了有lock(this)的函数,就会锁定对象本身。如此该对象就不能背其他线程调用,如此当在其他线程中使用时就会出现...
阅读(13) 评论(0)

C#进程 线程学习笔记1

1.C#中可以直接操作进程 System.Diagnostics.Process,从命名空间上可以看出,这个多用来调试用。但是里面确实有很多很好用的方法。包括启动程序process.start,关闭进程process.kill()等等。 2.进程一般用的比较少,但是线程是非常常用的内容。 前面说到Thread类已经逐渐被Timer和Task类代替,但是现阶段很多代码中还是已Threa...
阅读(43) 评论(0)

C# Timer

1.在设定的间隔之后生成事件,带有生成重复事件的选项。 2.下面三个命名空间中都有Timer类    System.Windows.Forms.Timer    System.Threading.Timer    System.Timers.Timer 其中System.Windows.Forms.Timer最为常用,直接在画面的工具箱中拖过来既可以使用,双击后会跳到默认属性timer1...
阅读(146) 评论(0)

委托应用之窗口

Main函数中创建的窗口为主窗口,一般默认命名form1,然后在form1中创建其他的窗体。如果在主窗口form1中想传值给其他的子窗口值则只需要子窗体的类中定义相应的接口,直接调用即可。但是如果想把子窗体的值传递给父窗体,则需要回调机制(委托)来实现。 主窗体代码实现如下: public partial class Form1 : Form { public Form1()...
阅读(44) 评论(0)

你可能不知道的陷阱:C#委托和事件的困惑

一. 问题引入          通常,一个C语言学习者登堂入室的标志就是学会使用了指针,而成为高手的标志又是“玩转指针”。指针是如此奇妙,通过一个地址,可以指向一个数,结构体,对象,甚至函数。最后的一种函数,我们称之为“函数指针”(和“指针函数”可不一样!)就像如下的代码: int func(int x); /* 声明一个函数 */     i...
阅读(45) 评论(0)

Application.DoEvents

Application.DoEvents()的作用:处理所有的当前在消息队列中的Windows消息 如果将自己的程序和主窗体写在同一个线程,那么当自己的代码出现长时间占用线程时,windows消息(鼠标,键盘等消息)不会被处理,使得程序出现假死状态。所以首先建议不要将自己的程序放在主窗体线程中。如果非的这么做不可,可以调用Applicatioin.DoEvents()来将windows消息优先级...
阅读(32) 评论(0)

C#委托

1.C/C++中观察者模式的实现可以把回调函数作为指针传递给主体,然后由主体在适当的实际确定什么时候调用观察函数。但是C#没有指针用法,是无法将函数作为参数直接传递的,所以就有了Delegate。委托用来实现C/C++中函数指针的功能,它允许你传递一个类A的方法m给另一个类B的对象,使得类B的对象能够调用这个方法m。 2.delegate是C#中的一种类型,它实际上是一个能够持有对某个方法的...
阅读(37) 评论(0)

C#字符串格式化&MD5加密

1.字符串格式化 string.Format("{0:x2}", data) = data.ToString("x2") 字符 说明 示例 输出 C 货币 string.Format("{0:C3}", 2) $2.000 D 十进制 string.Format("{0...
阅读(57) 评论(0)

C#笔记3

1.Path和File是System.IO下面的两个静态类,可以用鼠标操作的动作都可以用这两个类来进行操作。 2.File读取文件时是一次性将文件全部读取到内存,所以如果文件过大是不适合用File来读取的。 此时使用FileStream的形式。FileStream是字节级别的操作。 3.StreamWriter和StreamReader可以操作字符。当然可以用Stream来操作字节。 4....
阅读(38) 评论(0)

C#笔记2

C#笔记...
阅读(37) 评论(0)

C#笔记

1.C#中的静态函数不作为普通实例的成员方法访问,如果调用静态函数时,必须用类名+静态函数名的形式。 2.重写GetHashCode()函数,一般用各个成员变量的哈希码进行^ xor 来得到新的哈希值。 3.只有在父类中被标记为virtual,abstract,override的方法才可以被重载,其他的都看不可以。...
阅读(37) 评论(0)

JavaWeb笔记

1.Web.xml中配置servlet时,url-pattern中如果使用*通配符,则只能有两种形式1) *.xxx  必须有点  2) /* ?代表一个字符,*代表任意个字符。 2.config内置对象ServletConfig的getInitParameter需要再web.xml中进行配置。从名字上看就是配置数据,所谓配置就是web.xml中的配置数据。 data 3...
阅读(59) 评论(0)

设计模式小结

1.工厂模式 简单工厂 基本上就是直接new对象的方式 工厂方法 判断类的方法参数,根据参数进行判断创建不同的对象 抽象工厂 根据创建接口,抽象类创建对象 2.单例模式 恶汉模式 如果是要线程安全,则只需加上synchronized即可。 class Singleton{   private static Singleton instance = null;   private S...
阅读(71) 评论(0)

泛型

1回顾泛型类   泛型类:具有一个或多个泛型变量的类被称之为泛型类。 class ClassGenericity { //在类里面可以直接使用T的类型 T aa; public void test11(T bb) { //................ } //静态方法 在类上面定义的泛型,不能再静态方法里面使用 p...
阅读(93) 评论(0)

PECS原则

经常发现有List、Set的声明,是什么意思呢?表示包括T在内的任何T的父类,表示包括T在内的任何T的子类,下面我们详细分析一下两种通配符具体的区别。 extends List foo3的通配符声明,意味着以下的赋值是合法的: 1 2 3 4 5 6 7 8 9 10 11 //...
阅读(106) 评论(0)
359条 共24页1 2 3 4 5 ... 下一页 尾页
    最新评论