J'écris actuellement une bibliothèque de wrapper pour Windows Mobile en C/C++. Je dois mettre en œuvre et d'exporter les fonctions suivantes:Windows Mobile/C: Attendre jusqu'à ce que la variable change
void start_scanning();
int wait_for_scanning_result();
void stop_scanning();
start_scanning()
est appelée pour démarrer le processus de numérisation. wait_for_scanning_result()
attendra jusqu'à ce qu'un résultat soit disponible et le renvoie, et stop_scanning
annulera le processus.
La bibliothèque que j'utilise possède une fonction de rappel qui est exécutée lorsqu'un résultat est disponible.
void on_scanning_result(int result)
{
/* My code goes here */
}
Malheureusement, je dois mettre en œuvre les fonctions ci-dessus, donc mon plan était de le résoudre comme ceci:
void on_scanning_result(int result)
{
scan_result_available = 1;
scan_result = result;
}
int wait_for_scanning_result()
{
/* ... wait until scan_result_available == 1 */
return scan_result;
}
Je ne sais pas comment faire cela dans les fenêtres/C et je serais très content que quelqu'un puisse m'aider ou me dire quelles fonctions je dois utiliser pour accomplir ceci.
Est-ce censé fonctionner plusieurs -filée? Si c'est le cas, vous pouvez utiliser des variables de condition ou un synchroniseur d'événements. – Dirk
@Dirk: Cela n'a pas d'importance s'il s'exécute en un ou plusieurs threads. – xsl