0
我有两个函数,我需要将它们两个并行运行,所以我在主函数中为它们创建了线程。代码如下所示:在win32中执行线程的步骤
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
......
_beginthread(ModbusRead,0,(void*)12);
_beginthread(ModbusWrite,0,(void*)10);
}
这两个函数是ModbusRead和ModbusWrite。
我已经在我的代码中只实现了这两行线程,并且它们与主函数的主线程并行地运行这两个函数。
让我们说功能ModbusRead在thread1中,而ModbusWrite在thread2中。我必须做下面的事情。
function ModbusWrite(thread2)
{
if (condition1 true)
{
Pause thread1(donot run function ModbusRead)
if(condition2 true)
{
resume thread1(restart function ModbusRead)
}
}
}
由于我是新来的线程我正在我的游荡线程执行是否正确与否,我怎么能满足上述条件。
它看起来像你想要互相排斥或某种事件/信号。像这样的线程间通信是一个相当复杂的问题,在这种情况下可能不是可以充分解释的问题,因为它需要谨慎的设计以避免死锁和其他问题。您可以尝试引用有关同步的MSDN文档:http://msdn.microsoft.com/en-us/library/windows/desktop/ms686353(v=vs.85).aspx –
这与[您的问题相同另一个](http://stackoverflow.com/questions/20603507/what-is-the-correct-synchronization-method-for-the-thread-in-win32)? – chwarr
是一个相似的..只是尝试不同的方式,我不能粘贴代码,所以我创建了更详细的另一个问题 – user3048644