HANDLE g_signal1;
HANDLE g_signal2;
UINT MyThread(LPVOID param)
{
DWORD dwRet =0;
int y;
DWORD nCount =2;
HANDLE handle[2] ={g_signal2,g_signal1};
enum CEvent{SIGNAL2=0,SIGNAL1};
CEvent event;
while (1)
{
dwRet=::WaitForMultipleObjects(nCount,handle,false,INFINITE);
switch(dwRet)
{
case WAIT_OBJECT_0:
TRACE("SIGNAL2\n");
break;
case WAIT_OBJECT_0+1:
TRACE(" SIGNAL1\n");
break;
default:
break;
} }
return 1;
}UINT MyThread1(LPVOID param)
{
for(int i=0;i<50;i++)
{
::SetEvent(g_signal1);
for(int j=0;j<5;j++)
{
::SetEvent(g_signal2);
}
}
return 1;
}CWwView::CWwView()
{
// TODO: add construction code heren
HWND hWnd=GetSafeHwnd();
g_signal1 = ::CreateEvent(NULL, FALSE, FALSE, "signal1");
g_signal2 = ::CreateEvent(NULL, FALSE, FALSE, "signal2");
AfxBeginThread(MyThread,hWnd,THREAD_PRIORITY_NORMAL);
AfxBeginThread(MyThread1,hWnd,THREAD_PRIORITY_NORMAL);
::OpenEvent(EVENT_ALL_ACCESS,false, "signal1");
::OpenEvent(EVENT_ALL_ACCESS,false, "signal2");}照理来说,结果应该输出一行SIGNAL2,接着输出5行SIGNAL1,这样连续重复50次。
但是,由于事件产生太快,WaitForMultipleObjects来不及处理这么多事件,导致大量丢数据,请问高手如何处理,急!!
HANDLE g_signal2;
UINT MyThread(LPVOID param)
{
DWORD dwRet =0;
int y;
DWORD nCount =2;
HANDLE handle[2] ={g_signal2,g_signal1};
enum CEvent{SIGNAL2=0,SIGNAL1};
CEvent event;
while (1)
{
dwRet=::WaitForMultipleObjects(nCount,handle,false,INFINITE);
switch(dwRet)
{
case WAIT_OBJECT_0:
TRACE("SIGNAL2\n");
break;
case WAIT_OBJECT_0+1:
TRACE(" SIGNAL1\n");
break;
default:
break;
} }
return 1;
}UINT MyThread1(LPVOID param)
{
for(int i=0;i<50;i++)
{
::SetEvent(g_signal1);
for(int j=0;j<5;j++)
{
::SetEvent(g_signal2);
}
}
return 1;
}CWwView::CWwView()
{
// TODO: add construction code heren
HWND hWnd=GetSafeHwnd();
g_signal1 = ::CreateEvent(NULL, FALSE, FALSE, "signal1");
g_signal2 = ::CreateEvent(NULL, FALSE, FALSE, "signal2");
AfxBeginThread(MyThread,hWnd,THREAD_PRIORITY_NORMAL);
AfxBeginThread(MyThread1,hWnd,THREAD_PRIORITY_NORMAL);
::OpenEvent(EVENT_ALL_ACCESS,false, "signal1");
::OpenEvent(EVENT_ALL_ACCESS,false, "signal2");}照理来说,结果应该输出一行SIGNAL2,接着输出5行SIGNAL1,这样连续重复50次。
但是,由于事件产生太快,WaitForMultipleObjects来不及处理这么多事件,导致大量丢数据,请问高手如何处理,急!!
参数没设对吧,
我用RTX(Real—-time Extention,能提供了高速、准确响应时间的实时子系统)接收硬件时钟板两个脉冲信号,分别是10ms,31.25ms。然后RTX接收中断响应后,发事件给我的界面程序(VC6.0实现)。我发现用WaitForMultipleObjects不能把所有事件都接收到。因为我分别对RTX接收中断响应及界面程序接收事件进行打印,发现RTX对中断都进行了响应,而界面不能完全接收所有的事件。所以希望大家帮我出出主意,我到底该怎么办,才能把事件接收齐了。