我写的这个对象线程安全么?

smartcreater 2008-03-19 04:46:39
应用场景:我需要一个线程安全的Queue,而且最好提供强类型Queue支持(如:GenericQueue)
虽然Queue类提供了一个static 方法来返回一个线程安全的Queue,但不提供强类型支持。
我这样实现:竟然有人说这样有问题,我不解,望高手解惑!!呵呵

public class SyncQueue<T>:Queue<T>
{
public SyncQueue()
{
this._isSync = true;
this._syncRoot = new object();
}

public SyncQueue(int capacity)
: base(capacity)
{
this._isSync = true;
this._syncRoot = new object();
}


/// <summary>
/// 获取一个值,该值指示是否同步对 Queue 的访问(线程安全)。
/// </summary>
public virtual bool IsSynchronized
{
get { return this._isSync; }
}

/// <summary>
/// 获取可用于同步 Queue 访问的对象。
/// </summary>
public virtual Object SyncRoot
{
get { return this._syncRoot; }
}

private bool _isSync;
private object _syncRoot;
...全文
222 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
boblaw 2008-03-19
  • 打赏
  • 举报
回复
说错了,没有泛型还不是照样写程序?
boblaw 2008-03-19
  • 打赏
  • 举报
回复
你可以在Queue.Synchronized写一个。
不过有必要吗?没有多态还是不照样写程序?
boblaw 2008-03-19
  • 打赏
  • 举报
回复
Queue <T> 不是线程安全的。
wanabe 2008-03-19
  • 打赏
  • 举报
回复
up
smartcreater 2008-03-19
  • 打赏
  • 举报
回复
Queue.Synchronized能保证线程安全, 但能保证Queue<T>是线程安全的吗????
vrhero 2008-03-19
  • 打赏
  • 举报
回复
典型不看MSDN的结果...就算你不看MSDN也该看看InterlliSense吧...
boblaw 2008-03-19
  • 打赏
  • 举报
回复
使用方法如下:

Queue syncQueue = Queue.Synchronized(new Queue());
//syncQueue就是線程安全的了。
boblaw 2008-03-19
  • 打赏
  • 举报
回复
暈倒,Queue本身就提供了線程安全的版本Queue.Synchronized,何必重復勞動?

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧