私は新しいasync
とawait
のキーワードをC#で探しています。FileStream WriteAsyncと混乱を待ちます
私はMSDN FileStream.WriteAsync()
exampleを見ていて、何かを理解しているかどうかはわかりませんでした。私は何を得ることはありませんがawait
の配置である
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);
}
}
}
}
次のように
例があります。 WriteAsync()
によって返されるTask
の項目を受け取ることができないと思われるので、これは常に私に構文エラーを与えるためです。だから私はこれをコンパイルすることができる唯一の方法は、await
を呼び出すことです。
これを行うと、通話が終了するのを待つことはありませんか?これはそれほど非同期ではありません...
「タスク」アイテムを「取る」とはどういう意味ですか? –
@Jon「タスクt = SourceStream.WriteAsync(結果、0、result.Length);」のようなものです。後で 'await t;'を実行します – Andrew
あなたは間違いなくそれを行うことができます。 –