
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 · 479 阅读 · 0 评论 -
C#多线程——多线程访问共同的代码或者对象
多线程对共同资源的访问,往往会造成数据的混乱和不可预料的结果,因此一般需要加锁访问进行互斥访问。 所谓“互斥访问”是指,一段代码或者公共变量,在一个时刻只允许一个线程去访问,其他的线程需要等待,直到改线程处理完毕并通知下一个等待的线程去处理。 1、可以用“Lock”来提供代码的互斥访问: lock (一个类的示例、静态变量的类名) { // 代码 } 2、可以用“Mo原创 2012-04-08 13:48:13 · 11320 阅读 · 0 评论 -
C#多线程——前台线程和后台线程
由于时间片的原因,虽然所有线程在微观上是串行执行的,但在宏观上可以认为是并行执行。 线程有两种类型:前台和后台。我们可以通过线程属性IsBackground=false来指定线程的前后台属性(默认是前台线程)。 区别是:前台线程的程序,必须等所有的前台线程运行完毕后才能退出;而后台线程的程序,只要前台的线程都终止了,那么后台的线程就会自动结束并推出程序。 用法方向:一般前台线程用于需要长时间原创 2012-04-08 11:55:07 · 6535 阅读 · 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 · 14263 阅读 · 0 评论 -
C#多线程——线程池和回调函数
也许你曾经遇到过:一个线程做事情,其他线程等待,那么有可能因为不做事情的线程在等待,而浪费掉时间。 我们可以通过线程池ThreadPool来解决,使用ThreadPool.QueueUserWorkItem(回调函数,object),将参数封装在一个类的对象中,传给回调函数去执行。 TheadPool的用法: 1、创建一个ManualResetEvent的对象,就像一个信号灯,指示线程的挂起原创 2012-04-08 15:07:05 · 8374 阅读 · 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 · 804 阅读 · 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 · 7065 阅读 · 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 · 877 阅读 · 0 评论