Müssen Sie Objekte entsorgen und auf null setzen, oder bereinigt der Garbage Collector sie, wenn sie den Gültigkeitsbereich
Führt anwendungsdefinierte Aufgaben aus, die mit dem Freigeben, Freigeben oder Zurücksetzen nicht verwalteter Ressourcen verbunden sind
Müssen Sie Objekte entsorgen und auf null setzen, oder bereinigt der Garbage Collector sie, wenn sie den Gültigkeitsbereich
Warum verwenden manche Leute die FinalizeMethode gegenüber der DisposeMethode? In welchen Situationen würden Sie die FinalizeMethode gegenüber der DisposeMethode verwenden und
DataSet und DataTable implementieren beide IDisposable, daher sollte ich nach herkömmlichen Best Practices ihre Dispose () -Methoden aufrufen. Nach dem, was ich bisher gelesen habe, verfügen DataSet und DataTable jedoch nicht über nicht verwaltete Ressourcen, sodass Dispose () nicht viel bewirkt....
Etwas wie: using (IDisposable disposable = GetSomeDisposable()) { //..... //...... return Stg(); } Ich glaube, es ist kein geeigneter Ort für eine Rückgabeerklärung,
Beginnen Sie mit diesen einfachen Klassen ... Angenommen, ich habe eine einfache Reihe solcher Klassen: class Bus { Driver busDriver = new Driver(); } class Driver { Shoe[] shoes = { new Shoe(), new Shoe() }; } class Shoe { Shoelace lace = new Shoelace(); } class Shoelace { bool tied = false; } A...
Das .NET IDisposable-Muster impliziert , dass Ihr Finalizer Dispose explizit aufrufen muss, wenn Sie einen Finalizer schreiben und IDisposable implementieren. Dies ist logisch und das habe ich immer in den seltenen Situationen getan, in denen ein Finalizer erforderlich ist. Was passiert jedoch,...
Ich möchte eine Aufgabe auslösen, die in einem Hintergrundthread ausgeführt wird. Ich möchte nicht auf die Fertigstellung der Aufgaben warten. In .net 3.5 hätte ich Folgendes getan: ThreadPool.QueueUserWorkItem(d => { DoSomething(); }); In .net 4 ist die TPL der vorgeschlagene Weg. Das übliche...
Ich habe ein benutzerdefiniertes WPF-Benutzersteuerelement erstellt, das von Dritten verwendet werden soll. Mein Steuerelement hat ein privates Mitglied, das verfügbar ist, und ich möchte sicherstellen, dass seine Entsorgungsmethode immer aufgerufen wird, sobald das enthaltende Fenster / die...
Mein Grundproblem ist, dass beim usingAufruf Disposevon a StreamWriterauch das BaseStream(gleiche Problem mit Close) beseitigt wird . Ich habe eine Problemumgehung dafür, aber wie Sie sehen können, muss der Stream kopiert werden. Gibt es eine Möglichkeit, dies zu tun, ohne den Stream zu kopieren?...
Ich habe den folgenden Code using(MemoryStream ms = new MemoryStream()) { //code return 0; } Die dispose()Methode wird am Ende von usingAnweisungsklammern aufgerufen, }oder? Wird das Objekt ordnungsgemäß entsorgt, da ich returnvor dem Ende der usingAnweisung bin MemoryStream? was geschieht...
Wann würde ich IDispose in einer Klasse im Gegensatz zu einem Destruktor implementieren? Ich habe diesen Artikel gelesen , aber ich vermisse immer noch den Punkt. Ich gehe davon aus, dass ich IDispose, wenn ich es für ein Objekt implementiere, explizit "zerstören" kann, anstatt darauf zu warten,...
Gibt es eine Methode oder eine andere leichte Methode, um zu überprüfen, ob sich eine Referenz auf ein entsorgtes Objekt bezieht? PS - Dies ist nur eine Kuriosität (gut schlafen, nicht im Produktionscode). Ja, ich weiß, dass ich das ObjectDisposedExceptionbeim Versuch, auf ein Mitglied des...
Ich studiere, wie Garbage Collector in c # funktioniert. Ich bin über die Verwendung von verwirrt Destructor, Disposeund FinalizeMethoden. Nach meinen Recherchen und Erkenntnissen weist eine Destructor-Methode in meiner Klasse den Garbage Collector an, die Garbage Collection auf die in der...
Es ist mir kürzlich, dass Methoden verschiedene Linq Erweiterung hingewiesen (wie Where, Selectusw.) zurückgeben ein , IEnumerable<T>das auch passiert zu sein IDisposable. Das Folgende wird ausgewertetTrue new int[2] {0,1}.Select(x => x*2) is IDisposable Muss ich über die Ergebnisse...