so true

心怀未来,开创未来!
随笔 - 160, 文章 - 0, 评论 - 40, 引用 - 0
数据加载中……

.NET零散笔记[4]

创建只读属性,可以只有getter方法而没有setter方法即可。

代表主要有两个用途,一个是回调,另一个是事件处理。对于回调,代表就像是用typedef定义了一个指向函数的指针。代表需要用new来产生,代表也可以在形式上类似于类那样,来定义个该代表的对象,也可以作为对象作为函数参数进行传递。

nested loop的意思是嵌套循环,经常看到nested这个词,但一直不知道啥意思,现在总算知道了。

线程部分:
在System.Threading名空间中定义;
创建线程不必要利用到一个ThreadStart的代表,该代表来指定一个方法,这一方法就是线程执行的函数体;
启动线程用Start;
休眠线程用Sleep;
在.NET中,线程可以超越进程的界限,访问其他进程中的线程;
线程挂起有Sleep(0)和Suspend两种方法,第一种方法直到其他线程调用该线程的Interrupt来中断这种挂起状态,第二种方法会直到其他线程调用该线程的Resume才能恢复挂起的状态;
销毁线程用Abort。
一个典型例子:
class A
{
 public static void fun()
 {
  Console.WriteLine("Another Thread is running!");
 }
 
 public static void main()
 {
  ThreadStart t=new ThreadStart(fun);
  Console.WriteLine("Main Thread is running!");
  
  Thread thread=new Thread(t);
  thread.Start();
  
  Console.WriteLine("...");
 }
}

.NET中用Monitor类实现了类似于信号量的机制来对代码块进行串行化的访问。
Monitor.Enter(this);
代码块
Monitor.Exit(this);

C#中用lock实现了类似Monitor的功能,使用方法如下:
lock(this)
{
 代码块
}

可以通过Mutex来实现同步,使用方法如下:
在类中定义一个成员变量:Mutex mutex=new Mutex(false);//这里用false表示此刻还不希望锁定。
在使用时,可以这样:
mutex.WaitOne();
代码块
mutex.Close();

posted on 2008-04-07 09:44 so true 阅读(294) 评论(0)  编辑  收藏 所属分类: .NET


只有注册用户登录后才能发表评论。


网站导航: