首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

在c#net中用CQueue队列数据结构,多线程同步的有关问题? 急

2012-01-11 
在c#.net中用CQueue队列数据结构,多线程同步的问题?急!!!程序的实现功能:CQueuequeuenewCQueue()//用队

在c#.net中用CQueue队列数据结构,多线程同步的问题? 急!!!
程序的实现功能:
CQueue   queue   =   new   CQueue();   //用队列来作为存储结构

采用一个线程在队列的一段追加数据:
queue.Enqueue( "xxxx ");
采用多个线程同时在获取队列中的数据;
queue.Dequeue();

以上的线程在同时工作的,我如何做到对队列的通过访问处理;如:在获取数据时保证每个获取数据的线程,取到的数据不是在队列中同一位置上的。

多谢!




[解决办法]
使用lock

lock(queue.SyncRoot)
{
// 操作代码
}

或者使用同步包装的实例

Queue queue = Queue.Synchronized(new Queue());

[解决办法]
有Cqueue这个东东吗?是Queue吧。
规范的写法是:
lock (((ICollection)queue).SyncRoot)
{
queue.Enqueue( "xxx ");
}
[解决办法]
也可以适用对象锁。
总之是要做资源保护的。
[解决办法]
mark

热点排行