08/10/15 14:15:14
>>322
後始末無視して簡単に書いてみた
#include<windows.h>
#include<stdio.h>
HANDLE eventA,eventB;
DWORD func(HANDLE self,HANDLE other,const char*str){
while(*str)
WaitForSingleObject(self,INFINITE) , putchar(*str++) , SetEvent(other);
return 0;
}
DWORD WINAPI funcA(LPVOID p){return func(eventA,eventB,"12345");}
DWORD WINAPI funcB(LPVOID p){return func(eventB,eventA,"ABCDE");}
int main(){
eventA = CreateEvent(0,0,1,0);
eventB = CreateEvent(0,0,0,0);
HANDLE f[] = {CreateThread(NULL,0,funcA,0,0,0),CreateThread(NULL,0,funcB,0,0,0)};
WaitForMultipleObjects(2,f,1,INFINITE);
printf("\n");
}