J'ai frappé une conversation avec mon collègue aujourd'hui, qui a dit qu'elle avait juste appris la raison derrière l'utilisation de l' using
déclaration.
//Using keyword is used to clean up resources that require disposal (IDisposable interface).
using (StreamReader reader = new StreamReader(@"C:\test.txt"))
{
string line = reader.ReadLine();
}
Je l'ai fait remarquer que l'objet est marqué comme "Peuvent être éliminés", mais pas réellement éliminés et les déchets recueillis, à moins que GC décide de le faire.
Elle a répondu que l'objet sera détruit automatiquement une fois que l'utilisation de la déclaration se termine, car l'utilisation de déclaration est traduite en try-catch-finally bloc. Donc, l'objet doit obtenir éliminés à la fin de l'instruction à l'aide.
J'étais confus par cela, parce que je sais que l'utilisation d'un using
déclaration ne garantit pas que l'objet se GC-recueillies. Tout ce qui se passe, c'est que l' Dispose()
de la méthode appelée. Le GC décide quand GC il en soit. Mais quand elle a demandé pour preuve, je ne pouvais pas trouver tout.
Personne ne sait comment cela fonctionne, et comment le prouver?