Thread.Suspend, operazioni di Garbage Collection e punti sicuri
Aggiornamento: novembre 2007
Quando si chiama Thread.Suspend su un thread, nel sistema viene rilevato che è stata richiesta una sospensione di thread, di cui viene consentita l'esecuzione fino al raggiungimento di un punto sicuro, prima di sospendere effettivamente il thread. Per un thread un punto sicuro è un punto nell'esecuzione in corrispondenza del quale è possibile eseguire le operazioni di Garbage Collection.
Dopo avere raggiunto un punto sicuro, il runtime garantisce che il thread sospeso non effettuerà ulteriori avanzamenti nel codice gestito. Un thread in esecuzione all'esterno del codice gestito è sempre sicuro per le operazioni di Garbage Collection e l'esecuzione continua finché non tenta di riprendere l'esecuzione del codice gestito.
![]() |
---|
Per effettuare un'operazione di Garbage Collection, è necessario che vengano sospesi tutti i thread ad eccezione di quello che esegue la raccolta. Ogni thread deve essere portato a un punto sicuro prima di poter essere sospeso. |
Vedere anche
Concetti
Gestione automatica della memoria