多进程监控多个设备,如何同时发送指令? 多进程监控多个设备,同一类型的,控制指令都是一样的。当发现它们在位时,如何同时发送指令? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 比如说,CreateProcess产生2个进程后,打开不同设备ID,对设备发送指令。而,CreateProcess在进程列表中不能有两个;哎,描述得不够准确...设备的在位是通过函数扫描IO获得的,如何同时发送指令,让设备同时做某一个动作? 同时不可能,肯定是有先有后,你可以使用事件Event或互斥对象在进程间同步。 不是很清楚LZ要做什么同时发送是很难做的,进程是由windows调度的 没法绝对同时,因为电脑同一时间不可能控制两个设备,如果要绝对同时需要由硬件控制。如果要所有进程同步执行可以利用命名事件,在主进程中创建一个命名事件,其它进程打开并等待事件。参考CreateEventEx。 绝对的同步固然是没有的,根据Cpu的选择嘛,当然了,每个进程每个ID,当你希望同时的时候,不妨在每个ID下创建一个判断语句,看是否一个执行别的也跟着,我的想法是这样的. 发现设备的代码如下: do { // Check if device exists rc = PciDeviceFind( &DevKey, (U8)i ); if (rc == ApiSuccess) { if ((DevKey.DeviceId == 0xBEEF) && (DevKey.VendorId == 0xFACE)) { NumDevices ++; } } i ++; } while ((rc == ApiSuccess) && (i < MAX_DEVICES_TO_LIST)); //如果不至1个设备,则需要创建多个进程 if (NumDevices > 1) { //create serval processes here }CreateProcess可以调用自己的实例么?使用应注意些什么?也就是说,CreateProcess(NULL, "C:\\Program Files\\MyApp", ...) 在MyApp内,却调用MyApp实例。 发送自定义消息失败 COM操作的日志记录功能 怎样根据表单中的form中input element 的id 一个文件大小问题 “找不到映像文件中指定的资源类型。”是怎么回事?请帮忙,谢谢!!! CListCtrl中的数据能不能转存或导出为Excel表格文件? 请问:编译出现UpDate()没有被定义 TURE没有被定义怎么回事 关于VC Debug的问题 ########## 恭请Lightest和aprilsnow两位大哥进来领分 ########## 在视图类中获得视图大小 出错 dll的问题 自定义资源的问题
而,CreateProcess在进程列表中不能有两个;哎,描述得不够准确...设备的在位是通过函数扫描IO获得的,如何同时发送指令,让设备同时做某一个动作?
如果要所有进程同步执行可以利用命名事件,在主进程中创建一个命名事件,其它进程打开并等待事件。参考CreateEventEx。
do
{
// Check if device exists
rc = PciDeviceFind(
&DevKey,
(U8)i
); if (rc == ApiSuccess)
{
if ((DevKey.DeviceId == 0xBEEF) && (DevKey.VendorId == 0xFACE))
{
NumDevices ++;
}
} i ++;
}
while ((rc == ApiSuccess) && (i < MAX_DEVICES_TO_LIST)); //如果不至1个设备,则需要创建多个进程
if (NumDevices > 1)
{
//create serval processes here
}CreateProcess可以调用自己的实例么?使用应注意些什么?
也就是说,CreateProcess(NULL, "C:\\Program Files\\MyApp", ...) 在MyApp内,却调用MyApp实例。