Comment puis-je créer un multithread en C pour Windows?

Je ne sais pas comment puis-je créer des discussions en C, j’ai vu un article sur la bibliothèque pthread.h mais j’ai entendu dire que c’est uniquement pour Linux OS, j’ai une fonction qui c’est une timer, je veux créer un fil avec cette fonction Je ne connais pas non plus la bibliothèque dont j’ai besoin et la syntaxe pour écrire le code, si quelqu’un peut me fournir un code simple avec des threads, ou me dire ce que j’ai besoin de mettre et le paramètre des fonctions.

Ici, c’est la fonction que je crée qui compte à rebours le temps spécifique que l’utilisateur applique: j’ai besoin de créer un fil avec cette fonction.

Fonction (compte à rebours):

#include  #include  #include  #include  void countdown(int second) { int secs = 1; time_t unix; struct tm * timeinfo; time(&unix); timeinfo = localtime(&unix); int t1 = timeinfo->tm_sec; int t2 = timeinfo->tm_sec; int i = 0; while(1 == 1) { time(&unix); timeinfo = localtime(&unix); if((t1 + i) == timeinfo->tm_sec) { system("cls"); printf("Time left %d\n", timeinfo->tm_sec - t2 - second); i++; } if(timeinfo->tm_sec >= (t1 + second)) { system("cls"); puts("Your time its done"); break; } } } int main() { int limit; printf("How much time would you like (In secs): "); scanf("%d", &limit); countdown(limit); system("PAUSE"); return 0; } 

Voici un guide simple pour les threads Winapi
http://www.cs.rpi.edu/academics/courses/netprog/WindowsThreads.html

Cela étant dit, C est un langage minimaliste, il n’a pas de thread intégré comme java (ni d’énormes bibliothèques supplémentaires). Il s’agissait d’un langage général sur lequel s’appuyer. Sur les systèmes de type Unix, il existe des bibliothèques standard de c au-delà du standard ANSI / ISO, qui font partie du standard posix, les pthreads sont des threads posix. Les bibliothèques Windows C sont MS rend les choses à leur manière. Vous pouvez utiliser des infrastructures prenant en charge plusieurs systèmes d’exploitation, telles que glib ou qt (Windows, Linux, autres * nix). Il existe également des ports et des couches de compatibilité pour utiliser les fonctionnalités posix dans les fenêtres. Cigwin vous offre un environnement posix complet en plus des bibliothèques. Le compilateur MinGW vous permet d’utiliser des ports de fonctions posix par-dessus les couches win32.

Les frameworks tels que glib et qt sont les meilleurs pour garder votre code multiplateforme, ils cachent les spécificités du système d’exploitation, permettant une approche plus générale.

glib fait partie des bibliothèques GTK pour le développement d’interface graphique et QT est également un framework de développement d’interface graphique, mais en C ++.

Les balises suggèrent que vous utilisez Windows. L’API Win32 a une fonction CreateThread qui peut être utilisée pour lancer un nouveau thread. Cependant, si vous utilisez le runtime C (que vous êtes), vous devez utiliser la fonction _beginthread en incluant process.h .

_beginthread est _beginthread pour initialiser les informations d’état spécifiques au thread que le moteur d’exécution C doit exécuter correctement dans un thread.

Si vous êtes familier avec pthreads et / ou souhaitez une base de code multiplate-forme, vous pouvez utiliser MinGW et pthreads-win32 . Je l’ai récemment utilisé dans une application de la mienne et il semble bien fonctionner. Si vous développez exclusivement pour Windows, cela vaut probablement la peine d’apprendre les méthodes de threading WinAPI suggérées par Redcomet.

La bibliothèque standard C n’a pas le concept de thread. Un thread est généralement un concept sous OS. Vous pouvez utiliser win32api pour gérer les threads de la même façon que vous utilisez pthread sous Linux (pas si égal en fait ..)

Pour en savoir plus sur win32api, accédez au site Web MSDN.

Comment créer un fil avec win32api:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682516(v=vs.85).aspx