Hallo, ich bin gerade dabei eine Anwendung für Windows CE umzusetzen und habe das Problem das es keine ".Dispose()" funktionalität bei Windows CE in Kombination mit VB .Net gibt. Kennst sich da jemand aus bzw. gibt es eine andere möglichkeit eine Datei auf die man mit einem streamreader zugreift wieder frei zu geben? Bspl Dim sr as new streamreader("\My Documents\sync\dateiname.datei") sw.readline(... ...sw.close und hier müsste der sw.dispose() kommen.was unter CE nicht geht.
Laut MSDN (http://msdn.microsoft.com/en-us/library/ms227564.aspx) sollte Dispose für den TextWriter (=Basisklasse des Streamwriters) vorhanden sein. Bist du dir sicher? (Ich kann das nicht selbst prüfen).
Ja laut MSDN sollte es funktionieren. Tut es auch unter Windows xp. Allerdings nicht unter Windows CE. Gibt es sonst noch möglichkeiten Dateien wieder freizugeben? Ich möchte nämlich eine Datei die ich gelesen haben dannach löschen.
Der sogenannte dispose (via using) wird bei mir in Form1 ausgeführt. Es durchlaufen dannach 5 weitere Formen in denen man Fragen beantwortet. Bei der zu letzt geladenen Form möchte ich die gelesene Datei löschen und eine "Ergebnisdatei" in einem anderen Ordner ablegen. Vllt verstehst du mein vorgehen. Deswegen denk ich nicht das das mit dem unmittelbaren Löschversuch zusammen hängt. Sonst noch iwelche Ideen?
Vielleicht solltest Du dir mal die Version von Windows CE anschauen. Eine Übersicht welches .NET Framework mit welcher Windows CE Version passt findest du hier.
Noch eine Idee wäre vielleicht Dir auch mal die Finalize() Methode anzuschauen. Diese führt dazu das Object vor der Übergabe an den GC, zu bereinigen.
Kurz gesagt: a) Finalize ist dazu nicht gedacht -> IDisposable ist korrekt. Siehe "Every implementation of Finalize in a derived type must call its base type's implementation of Finalize. This is the only case in which application code is allowed to call Finalize." b) Mit Finalize kommen die Objekte in den Finalizer-Queue des GC und erst beim nächsten Müllsammeln werden die Objekte wirklich freigegeben (daher auch GC.SupressFinalize bei IDisposable, weil es nicht nötig ist)
Ich hab etz das ganze versucht über eine externe exe zu löschen. Das ganze liegt dann wohl doch beim "file.delete" da stimmt iwas nicht :S. naja danke euch für die Hilfe.
Ich nehme das wieder zurück, habe die Anwendung nicht richtig geschlossen.(app.exit anstatt me.close) Ist zwar jetzt einbischen unschön gelöst aber es funktioniert. Danke