Suggerimenti per evitare problemi relativi ai programmi multithread
Durante la creazione, il collegamento e l'esecuzione di un programma multithread C possono verificarsi diversi problemi. Alcuni dei più comuni sono descritti nella tabella riportata di seguito. Per informazioni analoghe con MFC, vedere Multithreading: suggerimenti sulla programmazione.
Problema |
Causa probabile |
---|---|
Viene visualizzata una finestra di messaggio che indica che si è verificata una violazione della protezione. |
Molti errori di programmazione in Win32 provocano violazioni della protezione. Una delle cause più comuni delle violazioni della protezione è l'assegnazione indiretta di dati a puntatori null. Come conseguenza, il programma tenta di accedere alla memoria che non gli "appartiene", determinando una violazione della protezione. Un metodo semplice per rilevare la causa di una violazione della protezione consiste nel compilare il programma completo delle informazioni di debug, quindi eseguirlo tramite il debugger in ambiente Visual C++. Quando si verifica l'errore di protezione, il controllo viene trasferito al debugger e il cursore viene posizionato sulla riga in cui si è verificato il problema. |
Vengono generati vari errori di compilazione e di collegamento. |
È possibile eliminare molti problemi impostando il livello di avviso del compilatore su uno dei valori massimi, prestando attenzione a eventuali messaggi di avviso. Utilizzando le opzioni di avviso di livello 3 o 4, è possibile rilevare conversioni di dati indesiderate, prototipi di funzione mancanti e l'utilizzo di funzionalità non ANSI. |