【发布时间】:2017-02-13 12:19:30
【问题描述】:
我在线程方面没有太多经验,但在这个项目中,我需要一些线程来通过 Com 端口从 SPS 请求数据。
我有不同的线程在运行,可能会发生 2 个甚至更多的线程想要访问同一个 Com-Port,这当然是行不通的。
现在我的问题是我是否可以将调用的方法锁定在变量的值上,该变量将是 Com-Port 的编号,而具有不同值的线程可以进入方法。
顺便说一句:我不能使用不同的变量作为锁的“键”,因为我从数据库中动态获取值。
我的代码可能如下所示:
Main()
{
Start different Threads calling myMethod
}
myMethod()
{
lock on value of a Variable
{
some code...
}
}
【问题讨论】:
-
您需要使用引用类型作为锁定对象,因此 Com-Port 的编号 不起作用。这取决于一些代码...你必须锁定什么
-
这里有什么问题?
标签: c# multithreading thread-safety locking