2015-09-08 14 views
8

Ich habe versucht, eine einfache App zu erstellen, die eine Liste von Youtube-URLs aufnehmen und als MP3s in einen bestimmten Ordner herunterladen kann. Es wird jedoch nicht die Dateien heruntergeladen. (Ich war in dieser Zeit in Ordnung, aber ich denke, der Mangel an Übung über den Sommer hat es ruiniert)Wie Debuggen von Async-Code?

Zunächst einmal der Code: https://gist.github.com/ericBG/159debbcdb606647afb8 (Ich weiß, es ist nicht genau minimal, aber es ist ziemlich klein sowieso und ich bin auch nicht sicher, wo das Problem liegt)

Also, was passiert ist, ist es bedeutet, wie eine Ausgabe, etwas zu haben:

Enter folder path where you would like output .mp3 files to be saved: 
G:\MusicTemp 
Enter any youtube videos you would like downloaded: 
https://www.youtube.com/watch?v=N6eUF30HXWY 
API requested for http://youtube.com/watch?v=N6eUF30HXWY 
Downloading API response for http://youtube.com/watch?v=N6eUF30HXWY 
Song requested for http://youtube.com/watch?v=N6eUF30HXWY 
Completed download. 
Enter any youtube videos you would like downloaded: 

(das Video wird nur das kürzeste Video, das ich leicht btw gefunden) und die Datei heruntergeladen als "Video Title" .mp3 am Pfad.

Was dies jedoch geschieht, ist:

Enter folder path where you would like output .mp3 files to be saved: 
G:\MusicTemp 
Enter any youtube videos you would like downloaded: 
https://www.youtube.com/watch?v=N6eUF30HXWY 
API requested for http://youtube.com/watch?v=N6eUF30HXWY 
Downloading API response for http://youtube.com/watch?v=N6eUF30HXWY 
Completed download. 
Enter any youtube videos you would like downloaded: 

und die Datei auf dem Pfad nicht.

Ich habe das Gefühl, dass dies aufgrund meiner asynchronen Programmierung ist. Ich bin mir jedoch nicht sicher, wie ich das debuggen soll, da ich nicht weiß, mit welchen Tools ich durchgehen und sehen kann, wo ich falsch gelaufen bin, und dann korrigiere. Würde der VS Community Debugger mich diesen Code gut debuggen lassen? Vielen Dank!

+0

Haben Sie eine Ausnahme? Haben Sie Schreibrechte für das Verzeichnis? –

+0

Wie haben Sie den bestehenden Code erstellt? Welche IDE hast du benutzt? –

+0

@ArghyaC Keine Ausnahmen, nur ein Teil des Codes wird übersprungen. Ich habe definitiv Schreibrechte für das Verzeichnis. –

Antwort

8

Kopie Kommentar, denn das ist die Antwort auf die Frage (nicht der Code Problemlösung):

Sie können wie normale Code debuggen. Legen Sie einen Haltepunkt für den Haltepunkt fest oder gehen Sie den Code durch. Wenn Sie mehrere Threads haben, kann es ein Problem sein, da der Debugger von einem Thread zum anderen springt. Wenn Sie nur einen Thread debuggen wollen, gehen Sie zum Thread-Fenster (debug/windows/threads), suchen Sie den aktuellen (yellow arrow) und frieren Sie alle anderen Threads ein.

1

Beim Speichern oder Herunterladen der Datei ist wahrscheinlich ein Fehler aufgetreten. Sie werden jedoch nicht danach suchen.

Der Code:

.ContinueWith(t => Console.WriteLine("Completed download."))); 

sollte überprüfen, ob der vorgängigen taks einen Fehler aufweist.

Die externe Aufgabe, die der Liste hinzugefügt wurde, stellt den Abschluss der Fortsetzung dar, so dass sie erfolgreich ist, auch wenn der Download fehlgeschlagen ist.

+0

Das sieht wie die Lösung für das Problem aus, das das Programm hat. Die Frage ist, wie man es debuggt. –

+0

Es hat eine Ausnahme. Vielen Dank! –