我正在查看C#中的新關鍵字async
和await
,並試圖感受它們。FileStream WriteAsync並等待混淆
我正在查看MSDN FileStream.WriteAsync()
example,我不確定自己能理解什麼。
的例子如下:
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
的位置。看起來你不能接受由WriteAsync()
返回的Task
項目,因爲這總是給我一個語法錯誤。因此,我可以編譯的唯一方法是讓await
與電話通話。
但是,如果你這樣做,它不等待電話結束?這使得它不是非常異步...
你是指「拿」「任務」項目是什麼意思? –
@Jon類似於'Task t = SourceStream.WriteAsync(result,0,result.Length);'然後在做'await t;' – Andrew
你可以這麼做 - 你認爲你不能做什麼? –