Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - thread in pascal
Forum - Pascal - thread in pascal

Avatar
gllobal (Normal User)
Rookie


Messaggi: 41
Iscritto: 02/04/2012

Segnala al moderatore
Postato alle 12:47
Venerdì, 08/06/2012
Ciao a tutti, c'è qualcuno che può spiegarmi come fare un thread in pascal?
Ho visto il programma realizzato da Phi ma non ho capitobene come si fa. Grazie a tutti quelli che risponderanno.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6380
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:59
Venerdì, 08/06/2012
Non hai capito bene qualcosa in particolare ? Dicci cosa (non in generale, ma di preciso ...)


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Segnala al moderatore
Postato alle 15:30
Venerdì, 08/06/2012
Innanzitutto ti informo che nel programma che penso tu abbia visto ho usato la unit windows, ma ho da tempo scoperto che essa non è neccessaria.

Devi creare una procedura di questo tipo.
Codice sorgente - presumibilmente Pascal

  1. function nome_funzione(p:pointer):ptrint;
  2. [ ... ]
  3. begin
  4. [ ... ]
  5. end;


ptrint è una intero della dimensione di un puntatore(ovvero 8Byte su processori 64bit, 4Byte su processori 32bit ...). La procedure deve contenere il processo del thread.

Ora, per avviare il thread puoi usare la funzione beginthread.
Può bastare passare solamente l'indirizzo della funzione :
Codice sorgente - presumibilmente Plain Text

  1. beginthread(@nome_funzione);


oppure puoi passare anche altri argomenti:

http://freepascal.org/docs-html/rtl/system/beginthread.html


Se utilizzi linux consiglio di aggiungere la unit cthreads

Ultima modifica effettuata da Phi il 08/06/2012 alle 15:35
PM Quote
Avatar
gllobal (Normal User)
Rookie


Messaggi: 41
Iscritto: 02/04/2012

Segnala al moderatore
Postato alle 18:48
Venerdì, 08/06/2012
ma nella function tra il begin e end ci devo mettere le istruzioni cioè il programma che verrà eseguito in thread? tipo tu nell'esempio hai messo l'orologio, l'hai messo in questa function, scusa se mi sono spiegato male e non hai capito cosa intendo, sono una frana a spiegare le cose. Ciao e grazie per la risposta.

PM Quote
Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Segnala al moderatore
Postato alle 0:31
Sabato, 09/06/2012
Esatto. Tra begin ed end della funzione nome_funzione devi inserire il codice delle istruzioni del nuovo thread che vuoi creare

Ultima modifica effettuata da Phi il 09/06/2012 alle 0:32
PM Quote
Avatar
gllobal (Normal User)
Rookie


Messaggi: 41
Iscritto: 02/04/2012

Segnala al moderatore
Postato alle 8:50
Lunedì, 11/06/2012
Ok, grazie mille.:)

PM Quote