[delphi] 6 processen: mogelijk?

Pagina: 1
Acties:

  • banaan-X
  • Registratie: Februari 2001
  • Niet online
Is het mogelijk om 6 processen tegelijk (echt tegelijk!) te doen in 1 programma? Het eerste proces is het verwerken van input door de gebruiker, verder wil ik dan nog 5 processen die de parallelle poort aansturen. (waaronder 2 processen pulsegenerators zijn van 0,2 ms 50Hz).

Ik hoop dat dit kan, anders moet ik maar externe schakelingen gaan gebruiken.

  • yodax
  • Registratie: Januari 2000
  • Laatst online: 28-04 08:47
Echt gelijktijdig is natuurlijk niet mogelijk, omdat windows preemptive mutlitasking heeft.

Als je meerdere threads opstart dan lijkt het wel gelijkt tijdig.

Sowieso als je de paralelle poort aanspreekt is je CPU snel genoeg om dit preemptive te doen hoor.

Maaaaaaar je gaat onherroepelijk problemen krijgen om vanuit meerdere threads je paralelle poort aan te spreken. Denk aan geblokkeerde threads en het feit dat je niet weet inwelke volgorde de threads de hardware benaderen. m.a.w je weet niet wie er leest en wie er schrijft. Je kan dit oplossen door critical sections of mutexen te gebruiken, alleen als je dat doet blokkeer je de andere threads die ook de mutex willen hebben, en dat wil je niet zeg je.

Ik denk dus dat je wat je wilt goed moet omschrijven of naar een realtime hardware toe moet gaan.

  • banaan-X
  • Registratie: Februari 2001
  • Niet online
Nou ik wil het wel proberen met threads. Maar ik snap niet hoe je het nou kan programmeren. Je moet achter een procedure die je tegelijk met het programma wilt uitvoeren ".Execute" zetten maak ik op uit de help van Delphi.

Maar dan? :?

Hoe sluit je bijv die procedure weer af?

  • yodax
  • Registratie: Januari 2000
  • Laatst online: 28-04 08:47
Je moet in delhi een thread klasse maken, die moet je laten erven van TThread. Dit doe je automatisch door File New en dan Thread te kiezen. Daar moet je dan een instantie van maken in je hoofd code.

Hier staat de voorbeeld code. C:\Program Files\Borland\Delphi6\Demos\Threads