我正在尝试从 URL 中检索 100 页。Url 的格式如下: https://www.someBlogSite.com/thread.php?t=xxxx&page=所以我的 for 循环基本上遍历这些页面并将结果存储在本地磁盘上的 html 文件中。https://www.someBlogSite.com/thread.php?t=xxxx&page=1 https://www.someBlogSite.com/thread.php?t=xxxx&page=2 。. https://www.someBlogSite.com/thread.php?t=xxxx&page=99这是我的工作代码,有没有办法避免使用 await Task.Delay(10000)?我必须使用它的原因是因为否则我的代码会在检索到所有 100 页内容之前退出。
1 回答
一只斗牛犬
TA贡献1784条经验 获得超2个赞
永远不要使用 async void(除非你真的知道你在做什么,或者 Visual Studio 为你生成了一个,例如一个事件处理程序)。如果您不需要从async方法中返回任何内容,请让它返回一个Task(根本没有泛型类型参数)。您的代码实际上不必返回它;编译器为你做这件事。
static async Task WriteTextAsync(string text)
{
string mydocpath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
using (StreamWriter outputFile = new StreamWriter(Path.Combine(mydocpath, "WriteTextAsync.html")))
{
await outputFile.WriteAsync(text);
}
//Notice no return statement
}
这将允许您等待它,即使它没有返回值。
await WriteTextAsync(text);
如果您等待任务,Task.Delay()则最后不需要调用。
- 1 回答
- 0 关注
- 168 浏览
添加回答
举报
0/150
提交
取消