C# - 队列和多线程

标签 c# multithreading queue

我是多线程编程的新手。以下是我想要实现的目标:

  • > 创建一个连续读取数据库(或某种消息队列,请提出最佳建议)的 Windows 服务以获取表中的条目。
  • > 在表中查找新条目
  • > 如果有一个新条目,检查线程池中是否有足够的线程(不确定那是如何工作的),启动一个新线程并做一些工作。在高流量期间可能会有许多新条目,这就是为什么我需要让它成为多线程的原因。

谢谢大家。请帮我提供想法和链接。感谢您的帮助。

最佳答案

如果可能,您可能需要考虑让数据库在修改时发送信号。连续读取似乎是一种倒退的设计。如果您不想创建自己的服务,您可能希望使用 Windows Scheduling Services 来启动您的应用程序以读取数据库。但是,您将无法使用 ThreadPool 来限制并发操作的数量。但是如果你创建自己的服务,使用 ThreadPool类(class)非常简单。您可以简单地设置线程限制并保留 queuing基于数据库更新的工作项。也玩弄 SetMinThreads , 以保持线程活跃和可重用。

关于C# - 队列和多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1817799/

相关文章:

c# - 此代码的正确 IDisposable 实现

c# - Entity Framework 和面向服务的架构如何入手?

c++ - 2个 future 之间的依赖

c - 使用队列的层序二叉树遍历

c# - 异步任务<TResult> - 返回值

c# - 如何使鉴别器表更有用

c# - 从 NetworkStream 读取。 ReadLine() 与 Read into ByteArray 哪个更好?

java - 并行矩阵乘法

r - 使用R中的OrderBook数据建模价格时间优先级

python - 不断检查列表并在列表中有项目时执行某些操作