0

我正在使用来自 Ingeardrivers.com 的 .dll。我意识到在那个网站上问这个问题会更合适,并且也已经发布到那里,但是这里有更多的人让我得到更好回答的机会。

我是一名新手程序员,这是我第一次使用线程。基本上我的程序中有两个主循环,当我将每个循环作为“主线程”单独运行时——它们都可以单独工作。问题是当我启动两个线程并在这些线程中运行主循环时,在循环中的某个时刻,它们都试图使用 Ingear.net dll,并且当一个循环已经创建了该类的一个实例时,第二个循环只是坐在构造函数上,不做任何事情。

有人对如何解决有任何建议吗?

4

2 回答 2

1

我建议您首先与供应商核实,看看该库是否是线程安全的。

但与此同时,您可以尝试创建该类的单个实例并将其作为构造函数的一部分传递给您的两个线程/循环(或使用它设置属性)。

它很可能行不通,但在你尝试之前你不会知道。

于 2012-11-12T21:40:49.067 回答
0

该插件是线程安全的 -

每次我都是通过“controllername.disconnect()”手动断开控制器的连接,出于某种原因,这实际上并没有关闭连接,而且我在 CIP 连接上已经用尽了。当我删除它时,控制器不知何故知道自己断开连接。

奇怪但它有效。

于 2012-12-10T12:11:47.030 回答