두 함수가 있는데, 두 함수를 병렬로 실행해야 주 함수에서 스레드를 만들 수 있습니다. 코드는 아래와 같습니다.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