麦田

不积跬步无以至千里.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2012年12月19日

摘要: 提起多线程,不得不提起委托(delegates)这个概念.我理解的委托就是具有同样参数和返回值的函数的集合比如publicdelegatevoidMyDelegate(intarg);就是这种形式的函数voidMyfuntion(inti);的集合.如何将一个函数加入委托的集合MyDelegatedele=newMyDelegate(Myfuntion1);再增加一个dele+=newMyDelegate(Myfuntion2);委托函数 dele就是 具有整数参数和空返回值的函数Myfuntion1,2的集合调用这个委托函数就是逐个调用 Myfuntion1,2,... 阅读全文
posted @ 2012-12-19 17:49 一些记录 阅读(286) 评论(0) 推荐(0)

摘要: 述C#多线程中 lock关键字 本文介绍C# lock关键字,C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。 每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。在C# lock关键字定义.. 阅读全文
posted @ 2012-12-19 17:41 一些记录 阅读(242) 评论(0) 推荐(0)

摘要: 如果代码是在VS2003中的话应该不会抛出这个异常,只有在使用VS2005的时候,如果你从非创建这个控件的线程中访问这个控件或者操作这个控件的话就会抛出这个异常。这是微软为了保证线程安全以及提高代码的效率所做的改进.以前在VS2003中,我们通常都会忽略这种问题的存在,无限制的使用线程来完成一些工作,但是当系统慢慢变大的时候,这种滥用的线程不但没有提高我们的效率,反而使我们找错误的效率以及系统的复杂度大大的增加了。 微软的这一改动可以让我们在使用线程的时候,充分考虑一下线程的安全以及线程的使用规范,这样会有益于我们做出健壮的程序。 坚决这种跨线程的问题在VS2005中提供了两种简单的方法(我个 阅读全文
posted @ 2012-12-19 17:39 一些记录 阅读(1142) 评论(0) 推荐(0)

摘要: AutoResetEvent 允许线程通过发信号互相通信。通常,此通信涉及线程需要独占访问的资源。线程通过调用 AutoResetEvent 上的 WaitOne 来等待信号。如果 AutoResetEvent 处于非终止状态,则该线程阻塞,并等待当前控制资源的线程通过调用 Set 发出资源可用的信号。调用 Set 向 AutoResetEvent 发信号以释放等待线程。AutoResetEvent 将保持终止状态,直到一个正在等待的线程被释放,然后自动返回非终止状态。如果没有任何线程在等待,则状态将无限期地保持为终止状态。可以通过将一个布尔值传递给构造函数来控制 AutoResetEvent 阅读全文
posted @ 2012-12-19 13:29 一些记录 阅读(248) 评论(0) 推荐(0)

摘要: Thread (ParameterizedThreadStart) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托。 Thread (ThreadStart) 初始化 Thread 类的新实例。 由 .NET Compact Framework 支持。 Thread (ParameterizedThreadStart, Int32) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托,并指定线程的最大堆栈大小。 Thread (ThreadStart, Int32) 初始化 Thread 类的新实例,指定线程的最大堆栈大小。 由 .NET C 阅读全文
posted @ 2012-12-19 13:25 一些记录 阅读(280) 评论(0) 推荐(0)

摘要: Timer控件主要会用到2个属性一个是Enabled和IntervalEnabled主要是控制当前Timer控件是否可用timer1.Enabled=false;不可用timer1.Enabled=true;可用timer1.Interval=1000;主要是设置timer2_Tick事件的时间,单位为毫秒例一:到9:00提示去上厕所:(把timer2.Interval=60000;//1分钟private void timer2_Tick(object sender, System.EventArgs e){ string cesuotime=DateTime.Now.Date... 阅读全文
posted @ 2012-12-19 13:22 一些记录 阅读(425) 评论(0) 推荐(0)

摘要: using System;using System.Collections.Generic;using System.Text;namespace Timer{ public class TimerManager { System.Timers.Timer t = new System.Timers.Timer(20000); //实例化Timer类,设置间隔时间为10000毫秒 public TimerManager() { t.Elapsed += new System.Timers.ElapsedEventHan... 阅读全文
posted @ 2012-12-19 11:35 一些记录 阅读(322) 评论(0) 推荐(0)

摘要: this.dataGridViewTemplate.DataSource = ap01TemplateBLL.GetAllList(); this.dataGridViewTemplate.DataMember = "ds"; 阅读全文
posted @ 2012-12-19 11:26 一些记录 阅读(180) 评论(0) 推荐(0)

摘要: 最好不要直接在真正的项目上面操作 这样 你会觉得很乱在模拟的简单项目上面 练习 了解透了这样你搬到真正的项目上面 才能得心应手就好像我做多线程调度的那个项目 阅读全文
posted @ 2012-12-19 10:54 一些记录 阅读(177) 评论(0) 推荐(0)