using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TaskConsole
{
class Program
{
static void Main(string[] args)
{
test();
}
static async Task<string> ReadTextAsync()
{
string textContents;
Task<string> readFromText;
using (StreamReader reader = File.OpenText("email.txt"))
{
readFromText = reader.ReadToEndAsync();
textContents = await readFromText;
}
return textContents;
}
static async Task test ()
{
string capture = await ReadTextAsync();
Console.WriteLine(capture);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我有以下代码使用async从文本文件中读取.我从这篇文章中了解到,微软使用StreamReader实现的例子不正确,所以作为一个学习练习,我决定纠正它.当测试方法不返回任何任务时,如何从main正确调用测试方法.我做了一点阅读,并了解到使用async void是不好的做法.在我的情况下,我该怎么办?
旁注:我不知道我是否实施错误,但我无法显示我的文字.我尝试了非异步方式,但是,当我使用async时,它显示为空白,请按任意键继续"
当测试方法不返回任何任务时,如何从main正确调用测试方法.
因为Main无法修改async,你必须明确地调用Task.Wait它:
Test().Wait();
Run Code Online (Sandbox Code Playgroud)
这是您应该在异步调用上阻止的唯一位置.
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |