1

我有一个轮询 GSM 调制解调器的 DLL。

当调制解调器收到 SMS 时,DLL 会预处理内容并通过中断将其发送到应用程序。应用程序处理数据并将结果发送回 DLL,后者通过 SMS 将其传递给发送方。如果系统有两个调制解调器,则应用程序有两个 dll 实例。

 IMyModem modem1 = new MyModem(...);
 IMyModem modem2 = new MyModem(...);

我认为内存中有两个独立的 Dll 实例,因此我在 DLL 中只需要一个 System.Timers.Timer。即它的两个单独的副本将彼此独立地过去。

应用程序 UI 也可以影响调制解调器。(结果、请求隔离、测试 tx 等)。

为了控制 UI 请求和轮询之间的交互,我在 DLL 中有两个静态互斥体,每个调制解调器一个。计时器经过处理程序和其他例程知道它们正在处理哪个调制解调器,因为它们在实例化期间被告知。所以他们知道 WaitOne() 在哪个 Mutex 上。

我已经测试过,虽然它似乎工作正常,但我担心设计中可能存在一个弱点,直到它在生产负载下才会出现。我会感谢“专家组”对此事的看法。

4

0 回答 0