线程使用相同的资源

时间:2014-01-01 09:29:09

标签: c# .net multithreading uart

我有C#多线程程序,它使用UART通过c ++ COM对象。我正在从几个线程访问UART并且它不是大声的。 穆解决方案:

  1. 仅从一个线程访问UART,并在每个周期开始时执行所有其他线程请求。此解决方案的问题是所有其他线程将在接收响应之前等待很长时间。
  2. 创建只有他才能访问UART的优先级线程。这个解决方案的问题在于风险很大。 什么解决方案最好,为什么?还有另一种解决方案吗?

1 个答案:

答案 0 :(得分:2)

我建议使用一个专用线程来提取ConcurrentQueue的请求并对UART进行操作。 所有其他线程都应该Enqueue请求并继续他们的工作,所以没有等待。这符合您的需求吗?

以下是ConcurrentQueue

的文档