, Если у Вас есть ситуация, где соединение TCP является потенциально слишком медленным и UDP 'соединение' потенциально слишком ненадежен, что Вы используете? Там существуют различные стандартные надежные протоколы UDP, какие события Вы имеете с ними?
ключевое слово в Вашем предложении 'потенциально'. Я думаю, что действительно необходимо доказать себе, что TCP является, на самом деле, слишком медленным для Ваших потребностей при необходимости в надежности в протоколе.
, Если Вы хотите вытащить надежность из UDP тогда, Вы в основном собираетесь быть перереализацией некоторых функций TCP сверху UDP, который, вероятно, сделает вещи медленнее, чем просто использование TCP во-первых.
DoEvents в основном переводится как:
void DoEvents()
{
MSG msg;
BOOL result;
while ( ::PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE ) )
{
result = ::GetMessage(&msg, NULL, 0, 0);
if (result == 0) // WM_QUIT
{
::PostQuitMessage(msg.wParam);
break;
}
else if (result == -1)
{
// Handle errors/exit application, etc.
}
else
{
::TranslateMessage(&msg);
:: DispatchMessage(&msg);
}
}
}
Я немного устарел в Win32 API, но асинхронный способ сделать это:
Этот способ прекрасно интегрируется с управлением событиями. Я понимаю, что это не совсем то, о чем вы просите, но я подумал, что все равно упомянул бы об этом как о возможном решении :)
EDIT: быстрый Google запускает вызов Windows API [SetTimer] ( http: / /msdn.microsoft.com/en-us/library/ms644906(VS.85,loband).aspx), который вы можете использовать для облегчения этого. Это будет сообщение WM_TIMER.