我应该使用什么类型的队列以及如何使用?

时间:2014-03-31 13:30:28

标签: c# multithreading queue

我有一个存储在云上的数据库,它有我正在访问的表。该表包含" FileName"," ID"等列。访问数据库后,我将FileName保存在数据表中。这是一个图像数据库,其中FileName充当指向原始图像的指针。

我有部分代码访问数据库并从数据库下载Image。我希望一个线程执行访问数据库并将其提供给队列的任务。另一个线程将对队列中的数据执行操作,然后该项将被删除。

我正在尝试使用BlockingCollections但不确定我应该使用哪种类型的Queue。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

我认为 ConcurrentQueue 正是您所寻找的。有关详细信息,请ConcurrentQueue MSDN

编辑:

您可以使用public bool TryDequeue(out T result)方法。它基本上通过在发生时传递异常来实现try模式。

答案 1 :(得分:-1)

您可以使用Synchronized Queue。 Synchronized是标准Queue类的线程安全包装器。