我正在查看 C# 中的新关键字async
和await
关键字,并试图了解它们。
我正在查看 MSDNFileStream.WriteAsync()
示例,但我不确定我是否理解某些内容。
示例如下:
using System;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.IO;
namespace WpfApplication1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private async void Button_Click(object sender, RoutedEventArgs e)
{
UnicodeEncoding uniencoding = new UnicodeEncoding();
string filename = @"c:\Users\exampleuser\Documents\userinputlog.txt";
byte[] result = uniencoding.GetBytes(UserInput.Text);
using (FileStream SourceStream = File.Open(filename, FileMode.OpenOrCreate))
{
SourceStream.Seek(0, SeekOrigin.End);
await SourceStream.WriteAsync(result, 0, result.Length);
}
}
}
}
我没有得到的是await
. 似乎您不能接受Task
返回的项目,WriteAsync()
因为这总是给我一个语法错误。所以我可以编译它的唯一方法是留下await
调用。
但是如果你这样做,它不等待调用完成吗?这使得它不是很异步......