2009-12-29 18 views
8

Ich möchte einen Thread in C erstellen, so dass der Thread automatisch nach zwei Sekunden aufrufen. Ich verwende Visual Studio und Windows-Plattform für die Entwicklung.Threading in C

Wie fange ich an?

+2

Welche Plattform? Und was meinst du mit "automatisch anrufen"? Sollte der Thread nach einem Timeout von zwei Sekunden automatisch eine Funktion aufrufen? Brauchen Sie das als separaten Thread oder wäre ein Timer im selben Thread ausreichend? Versuchen Sie etwas genauer in Ihrer Frage zu sein. –

+0

Ich benutze Visual Studio 2008 und Fensterplattform für die Entwicklung. Und automatisch aufrufen bedeutet, dass ich den Thread alle 2 Sekunden rekursiv aufrufen möchte, genau wie die NSTimer-Funktion in Ziel c. – Siddiqui

Antwort

17

Sie müssen OS-spezifische Bibliotheken verwenden, um Threading durchzuführen. Auf Posix werden Sie in pthreads suchen (und speziell pthread_create). Unter Windows benötigen Sie CreateThread oder _ beginthreadex.

+1

Der neue C-Standard, C11, enthält [Unterstützung für mehrere Threads] (http://en.cppreference.com/w/c/thread) –

2

Es gibt nichts in Standard C, das Ihnen helfen könnte. Sie müssen einige Bibliotheks- oder plattformabhängige Funktionen verwenden. Vergessen Sie nicht, dass viele Plattformen einfach keine Threads haben - nur Full-Weight-Prozesse.

Unter Windows verwenden Sie CreateThread(). Sie benötigen Microsoft SDK, um Ihren Code mit dieser und anderen Win32-Funktionen zu kompilieren.

+0

Bitte sagen Sie mir einige Bibliotheken, die es möglich machen können. – Siddiqui

+0

Ich schlage vor, dass Sie zuerst die Zielplattformanforderungen angeben - ich könnte eine Bibliothek angeben, die nicht für die Plattform Ihrer Interessen geeignet ist. – sharptooth

+0

Bitte teilen Sie uns Ihre Plattform, Arman ... Unter Unix, würden Sie normalerweise die POSIX Pthread-Bibliothek verwenden; Unter Windows verwenden Sie die native Windows-Threading-API. –

2

C hat keine eingebauten Gewindeeinrichtungen; Sie müssen Ihre OS-Dienste verwenden, um einen Thread zu erstellen.

Für Windows verwenden Sie CreateThread Funktion.

+0

Wie ist es möglich, Thread in Windows OS zu erstellen? – Siddiqui