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