[WinRT] Faire un Sleep en C++

less than 1 minute read

Lorsque l’on programme des opérations asynchrones on veux souvent tester la réaction de l’interface graphique. Par exemple est-ce qu’un indicateur visuel de chargement s’affiche bien si l’opération est longue etc… En C# on a souvent eu la surprise de ne pas retrouver notre bon vieux Thread.Sleep(milliseconds) mais on a fini par s’habituer à son remplaçant await Task.Delay(milliseconds). Oui mais quand on développe un composant en C++ on fait comment pour faire un Sleep ? Voici la réponse :

Windows::Foundation::IAsyncOperation<int>^ Class1::MyAsyncMethod()
{
	return create_async([this]() {
		// CECI EST LE SLEEP
		WaitForSingleObjectEx(GetCurrentThread(), milliseconds, FALSE);
		return 42;
	});
}

Si vous êtes intéressés par la documentation de la méthode WaitForSingleObjectEx voici où la trouver : http://msdn.microsoft.com/en-us/library/ms687036(v=VS.85).aspx

Updated:

Leave a Comment