首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何调试异步代码?

如何调试异步代码?
EN

Stack Overflow用户
提问于 2015-09-08 11:11:18
回答 2查看 6.7K关注 0票数 8

我一直试图制作一个简单的应用程序,它可以将youtube的URL列表作为MP3s下载到指定的文件夹中。但是,它并没有下载文件。(我过去在这方面很好,但我想这个夏天的缺乏练习已经毁了它)

首先,代码:https://gist.github.com/ericBG/159debbcdb606647afb8 (我知道它不是很小,但无论如何它都很小,我也不太确定问题在哪里)

所以,所发生的是,它应该有一些输出,比如:

代码语言:javascript
复制
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:

(视频是我容易找到的最短视频),在路径上下载的文件是“视频标题”.mp3。

然而,发生的情况是:

代码语言:javascript
复制
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:

而且文件不在路径上。

我有一种感觉,这是由于我的异步编程。但是,我不知道如何调试它,因为我不知道哪些工具可以让我了解错误所在,然后进行修正。VS社区调试器会让我很好地调试这段代码吗?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-08 11:32:53

注释的副本,因为这是问题的答案(不是代码问题解决方案):

您可以像调试普通代码一样调试它。设置断点、使用步骤或跨一步并遍历代码。如果您有多个线程,可能会很痛苦,因为调试器从一个线程跳转到另一个线程。如果只想调试一个线程,请转到线程窗口(调试/窗口/线程),找到当前的线程(yello箭头)并冻结所有其他线程。

票数 11
EN

Stack Overflow用户

发布于 2015-09-08 11:22:18

可能在保存或下载文件时出错,但您没有检查它。

守则:

代码语言:javascript
复制
.ContinueWith(t => Console.WriteLine("Completed download.")));

应该检查先行词是否有错误。

代码语言:javascript
复制
.ContinueWith(t => 
              {
                 if(t.Exception != null)
                 {
                    // log error
                 }
                 else
                 {
                    Console.WriteLine("Completed download.")));
                 });

添加到列表中的外部任务表示继续的完成,因此即使下载失败,它也会成功。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32456273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档