Visual Studio Macht faxxen?

Dultus, UserMod Light   19.03.2024, 09:56

Welche Exception denn? Den Code anzuhängen wäre auch sinnig.

DANIELdjldqwj 
Beitragsersteller
 19.03.2024, 10:01

Das ist zu viel Code, dass ich ihn einfügen könnte.

1 Antwort

Ich würde mal auf eine RaceCondition im Code Tippen. Hast du Code welcher Asynchron ausgeführt wird oder mehrere Threads?

Ansonsten sieh dir mal die Exception und den Stacktrace von dieser an da sollte drinnen stehen woher der Fehler kommt.


DANIELdjldqwj 
Beitragsersteller
 19.03.2024, 10:01

Der fehler komtm daher, dass er eine datei nicht findne kann die er umschreiben muss (Der dateiname wird geändert)

DANIELdjldqwj 
Beitragsersteller
 19.03.2024, 10:07
@Kelec

Sorry, bin da noch nicht so drin, aber der Dateipfad steckt in einem String drin

Kelec  19.03.2024, 10:11
@DANIELdjldqwj

Ja genau aber beginnt der mit einem Ordnernamen oder mit einem Laufwerksbuchstaben zb C:\\

Google auch einfach mal nach dem Unterschied zwischen absolutem und relativen Dateipfad.

Ich kann mir vorstellen dass dein Dateipfad realtiv ist und daher beim Debuggen das Programm die Datei nicht findet. Wenn du die Datei nun in das Ausführungsverzeichnis kopierst dann müsste es so auch gehn.

guterfrager5  19.03.2024, 11:06
@DANIELdjldqwj

Mit was für einer Funktion machst du das umbenennen? Also wird das im Mainthread oder in einem anderen ausgeführt?

Weil wie @Kelec schon geschrieben hat es ist wahrscheinlich eine Race condition. Also du startest einen neuen Thread, der die Datei umbenennen soll, dabei läuft das Hauptprogramm weiter und kommt zu der Stelle wo die Datei umbenannt sein soll (aber noch nicht ist, weil der andere Thread noch nicht fertig ist).

Ich habe zwar noch nicht in C# programmiert aber normal gibt es auch eine Funktion, die es synchron macht oder eine etwas um den Thread zu joinen (also z.B. im Mainthread so lange zu warten, bis der andere angeschlossen ist). Wenn es beides nicht gibt, müsste es so etwas wie ein Mutex geben, mit dem es nachbauen kannst.