使用c ++中的Busy Waiting或Threads实现自动化

时间:2012-07-27 20:25:40

标签: visual-c++ busy-waiting

我正在尝试自动化处理程序设备(机器人选择芯片并将其放到硬件平台上),具有以下要求:

1.处理程序有6个站点,一旦处理程序将设备放到该站点上,处理程序将返回错误代码:

code1表示准备测试,code2表示错误,如果正在处理中没有返回代码。

2.有一台主PC控制处理程序操作,通讯黑白主机和站点PC正在使用 Staf

3.我需要使用该代码来运行一些测试(已经实现并正常工作)。 处理程序将设备置于FIFO顺序中,第一个站点首先返回代码,最后一个站点最后返回代码。

4.站点PC正在被动地运行,主PC将确定何时运行以及如何运行测试。站点PC只知道处理程序是否准备好然后执行测试。

所以我的问题是:在这种情况下,对于站点PC(基于Windows且启用了perl和.net),正在忙于等待方法更好或等待条件机制更适合:

例如:示例代码为:

void runTestonSite()
{
    for(;;)
    {
        if(returnCode == code1)
        {
            testStart(arg1,arg2,arg3);
        }
    }
}

还是有更好的方法来完成这种任务吗?

#include <boost/thread.hpp>

void getReturnCode() { 
    // do stuff
}

void RunTestOnSite() { 
    // do stuff
}

int main (int argc, char ** argv) {
    using namespace boost; 
    thread thread_1 = thread(getReturnCode);
    thread thread_2 = thread(RunTestOnSite);

    // do other stuff
    thread_2.join();
    thread_1.join();
    return 0;
}

请指教, 感谢

0 个答案:

没有答案