|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: May 2006
Messaggi: 8
|
[C++] Gestione task da C Dos a Visual C++
Salve a tutti!
devo fare un porting di un programma da C sotto Dos a Visual C++ Windows per il controllo di apparecchiature medicali. Il core del programma sono 5 task (gestione tastiera, gestione allarmi, gestione processo, ecc.) che girano insieme (tempo ciclo totale 2,5 secondi) l'esecuzione dei task è gestita da rutine in assembler, inoltre c'è un WatchDog. Sono problematiche per me nuove. Qual'è il modo più semplice e sicuro per gestire i task in VisualC? Ho visto che nella casella degli strumenti ci sono i componenti Process (per i task) e Timer (per il Watchdog) posso usare quelli? Grazie. |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
Ovviamente servirebbe sapere qualcosina di piu' su questo punto, anche perche' i task devono comunicare fra di loro. Come? Siccome sei impegnato in un porting, vorresti farlo nella maniera piu' "indolore" possibile, cercando di utilizzare anche un modo di comunicazione fra processi che sia simile a quello originale. Immagino che una architettura a thread sia quella piu' simile a quella originale: non ho sottomano l'implementazione ma posso immaginare (grazie anche ai nomi dei "gestori" che hai scritto) che queste routine in assembler siano piuttosto limitate nei servizi che possono offrire, limitandosi a rischedulare delle funzioni a mo' di thread. Posso anche immaginare che la comunicazione avvenga tramite variabili globali condivise (si usava implementare delle code) che portassero i vari "eventi" da tastiera, allarmi, processo... al "thread" principale. Suggerimento: comincia a guardare la CreateThread() su MSDN.... PS - modifica il titolo del tuo thread, prima che lo chiudano
__________________
In God we trust; all others bring data Ultima modifica di sottovento : 09-10-2008 alle 15:41. Motivo: PS |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:52.



















