您的位置:首页 > 其它

信号同步机制

2016-01-21 14:33 267 查看










1.3.1.4 集合同步

 C#为各种集合类型提供了两种方便的同步机制:Synchronized 包装器和 SyncRoot 属性。

// Creates and initializes a new ArrayList

ArrayList myAL = new ArrayList();

myAL.Add( " The " );

myAL.Add( " quick " );

myAL.Add( " brown " );

myAL.Add( " fox " );

// Creates a synchronized wrapper around the ArrayList

ArrayList mySyncdAL = ArrayList.Synchronized(myAL);

1.3.1.1 同步粒度

 同步粒度可以是整个方法,也可以是方法中某一段代码。为方法指定 MethodImplOptions.Synchronized 属性将标记对整个方法同步。例如:[MethodImpl(MethodImplOptions.Synchronized)]

public static SerialManager GetInstance()

{

if (instance == null )

{

instance = new SerialManager();

}

return instance;

}

通常情况下,应减小同步的范围,使系统获得更好的性能。简单将整个方法标记为同步不是一个好主意,除非能确定方法中的每个代码都需要受同步保护。

将任务添加进线程池:

ThreadPool.QueueUserWorkItem(new WaitCallback(方法名));

重载

ThreadPool.QueueUserWorkItem(new WaitCallback(方法名), 参数);

因为ThreadPool是静态类 所以不需要实例化.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: