C#
文章平均质量分 55
幽助668899
励新图强,敦行致远
展开
-
Demo
using System;using System.Collections.Generic;using System.Text;namespace EventDemo{ public delegate void EventHandler(); /// /// Custom Class /// public class M转载 2012-01-08 16:24:20 · 463 阅读 · 0 评论 -
C#多线程——多线程访问共同的代码或者对象
多线程对共同资源的访问,往往会造成数据的混乱和不可预料的结果,因此一般需要加锁访问进行互斥访问。所谓“互斥访问”是指,一段代码或者公共变量,在一个时刻只允许一个线程去访问,其他的线程需要等待,直到改线程处理完毕并通知下一个等待的线程去处理。1、可以用“Lock”来提供代码的互斥访问:lock (一个类的示例、静态变量的类名){ // 代码}2、可以用“Mo原创 2012-04-08 13:48:13 · 11172 阅读 · 0 评论 -
C#多线程——前台线程和后台线程
由于时间片的原因,虽然所有线程在微观上是串行执行的,但在宏观上可以认为是并行执行。线程有两种类型:前台和后台。我们可以通过线程属性IsBackground=false来指定线程的前后台属性(默认是前台线程)。区别是:前台线程的程序,必须等所有的前台线程运行完毕后才能退出;而后台线程的程序,只要前台的线程都终止了,那么后台的线程就会自动结束并推出程序。用法方向:一般前台线程用于需要长时间原创 2012-04-08 11:55:07 · 6484 阅读 · 1 评论 -
C#多线程——创建线程
创建线程时,需要指定线程入口,即通过ThreadStart指定线程要去执行的“函数”或者“过程”。using System;using System.Collections.Generic;using System.Text;using System.Threading;namespace Demo{ public class ThreadClass原创 2012-04-08 12:19:42 · 14221 阅读 · 0 评论 -
C#多线程——线程池和回调函数
也许你曾经遇到过:一个线程做事情,其他线程等待,那么有可能因为不做事情的线程在等待,而浪费掉时间。我们可以通过线程池ThreadPool来解决,使用ThreadPool.QueueUserWorkItem(回调函数,object),将参数封装在一个类的对象中,传给回调函数去执行。TheadPool的用法:1、创建一个ManualResetEvent的对象,就像一个信号灯,指示线程的挂起原创 2012-04-08 15:07:05 · 8318 阅读 · 0 评论 -
C#简单线程示例
using System;using System.Collections.Generic;using System.Text;using System.Threading;namespace Demo{ class Program { [STAThread] static void Main(string[] arg原创 2012-04-08 11:19:58 · 782 阅读 · 0 评论 -
C#多线程——Timer
每隔一定的时间,触发去做指定的事情,可以用timer类。Timer timer = new Timer(timerDelegate, ParamObject, 1000, 1000) 其中,1、第一个参数是要执行的方法2、第二个参数是回调方法要使用的对象信息;3、第三个参数是延时启动的时间间隔,“0”表示立即启动;4、第四个参数是Timer的Interval。usin原创 2012-04-08 15:27:38 · 6989 阅读 · 2 评论 -
错误 "Unable to find manifest signing certificate in the certificat"
1、选择项目属性2、选择Signing属性3、将“Sign the ClickOnce manifests”的勾去掉。4、编译成功。原创 2013-07-18 14:59:44 · 847 阅读 · 0 评论