0

我正在开发一个 OPC 客户端。该客户端调用一个过程,该过程又在一个“队列”表中插入几行。

该客户端还有另一个线程,它不时打开“队列”表并根据表中的项目更新 OPC 项目的值。更新每个值后,线程从“队列”表中清除该行。

我想要的是:我调用该过程,它将值插入队列中并等待直到另一个线程清除它插入的值,然后执行其他操作。

这有可能吗?在其他语言中,我会考虑使用带有 Sleep()s 的 while 循环,测试行是否被清除,直到它退出循环。

感谢您的任何见解

-编辑:

我会尽量澄清一点:

假设有 3 种不同的作业类型:“插入”、“更新”和“最终处理”。

我可以从“INSERT”类型中获得许多不同的作业,每个作业都以其唯一的 ID 插入队列:

Insert (ID=1, OPCTag=1)
Insert (ID=1, OPCTag=2)
Insert (ID=1, OPCTag=3)

Insert (ID=2, OPCTag=1)
Insert (ID=2, OPCTag=2)
Insert (ID=2, OPCTag=3)

只有一个“更新”作业,不断读取和清除队列。

我被困在“最终处理”部分,因为我也会有多个这种类型的工作,就像“插入”的工作一样。

我不知道如何触发正确的“FINAL PROCESSING”作业,该作业链接到“INSERT ID”,在“UPDATE”清除了所有具有该 INSERT ID 的行之后。

假设我的“更新”作业清除了所有“ID = 1”的行。当 ID=1 的最后一行被清除时,我需要触发一个名为 FinalProcessingID1 的过程。当 ID=2 全部清除时也是如此。

4

0 回答 0