LLLLLRW 2020-10-20 10:52 采纳率: 0%
浏览 430
已结题

C#多线程同时调用dll中的一个串口程序,有没有锁一类的东西避免冲突

dll中有一个读串口的函数;

我在C#两个线程中均会调用这个串口函数,运行时有冲突;

这是因为调用一个函数的原因?还是调用了一个串口的原因?还是两者都有?该怎么解决呢?求大佬们帮忙

  • 写回答

1条回答 默认 最新

  • gentelwind 2020-10-20 22:04
    关注

    定义一个全局静态object对象,对需要多线程操作的地方使用lock。如下

     public class USBHelper
    {
        private static volatile object obj = new object();
        public double ReadUsbSomething()
        {
            lock (obj)
            {
                //TODO
            }
            return 0.0;
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月19日
  • 已采纳回答 8月19日