मैं सी # में नए async
और await
कीवर्ड देख रहा हूं और बस उनके लिए एक महसूस करने की कोशिश कर रहा हूं।फ़ाइलस्ट्रीम WriteAsync और भ्रम का इंतजार
मैं एमएसडीएन 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()
द्वारा लौटाया गया है क्योंकि यह हमेशा मुझे एक वाक्यविन्यास त्रुटि देता है। तो संकलन के लिए मैं इसे प्राप्त करने का एकमात्र तरीका कॉल के साथ await
छोड़कर है।
लेकिन यदि आप ऐसा करते हैं, तो क्या यह कॉल समाप्त होने की प्रतीक्षा नहीं करता है? यह बहुत असीमित नहीं बनाता है ...
'टास्क' आइटम "ले" से आपका क्या मतलब है? –
@ जोन कुछ 'टास्क टी = SourceStream.WriteAsync (परिणाम, 0, परिणाम। लम्बाई);' और बाद में 'प्रतीक्षा करें;' – Andrew
आप निश्चित रूप से ऐसा कर सकते हैं - आपको क्या लगता है कि आप ऐसा नहीं कर सकते हैं? –