2009-12-29 13 views
8

Voglio creare una discussione in C in modo che la discussione venga chiamata automaticamente dopo due secondi. Sto usando Visual Studio e la piattaforma Windows per lo sviluppo.Threading in C

Come iniziare?

+2

Quale piattaforma? E cosa intendi con "chiama automaticamente"? Il thread dovrebbe chiamare automaticamente una funzione dopo un timeout di due secondi? Hai bisogno che questo sia un thread separato o un timer della stessa discussione sia sufficiente? Prova ad essere un po 'più specifico nella tua domanda. –

+0

Sto usando Visual Studio 2008 e la piattaforma di finestre per lo sviluppo. E chiamare automaticamente significa che voglio chiamare ricorsivamente il thread dopo ogni 2 secondi, proprio come la funzione NSTimer nell'obiettivo c. – Siddiqui

risposta

17

È necessario utilizzare librerie specifiche del sistema operativo per eseguire il threading. Su Posix, ti consigliamo di esaminare pthreads (e in particolare pthread_create). Su Windows, ti consigliamo di CreateThread o _ beginthreadex.

+1

Il nuovo standard C, C11 include [supporto multi-threading] (http://en.cppreference.com/w/c/thread) –

2

Non c'è niente in C standard che potrebbe aiutarti. È necessario utilizzare alcune funzionalità della libreria o della piattaforma. Non dimenticare che molte piattaforme semplicemente non hanno thread - solo processi a pieno peso.

Su Windows utilizzare CreateThread(). È necessario Microsoft SDK per compilare il codice utilizzando questa e altre funzioni di Win32.

+0

Gentilmente dimmi alcune librerie che possono renderlo possibile. – Siddiqui

+0

Suggerisco di specificare prima i requisiti della piattaforma di destinazione - potrei dire a una libreria che non è adatta alla piattaforma di vostro interesse. – sharptooth

+0

Gentilmente dirci la vostra piattaforma, Arman ... Su Unix, normalmente userete la libreria pthread POSIX; su Windows, si utilizza l'API di threading nativa di Windows. –

2

C non dispone di servizi di filettatura incorporati; dovrai usare i tuoi servizi OS per creare un thread.

Per Windows utilizzare la funzione CreateThread.

+0

Come è possibile creare thread nel sistema operativo della finestra? – Siddiqui