Zaman uyumsuz olarak adlandırmak için bu yöntemi nasıl değiştirebilirim?Eşzamansız bir dosya oluşturma
private void Write(string fileName, data)
{
File.WriteAllText(fileName, data);
}
Zaman uyumsuz olarak adlandırmak için bu yöntemi nasıl değiştirebilirim?Eşzamansız bir dosya oluşturma
private void Write(string fileName, data)
{
File.WriteAllText(fileName, data);
}
FileStream.WriteAsync
(Kullanmak isterseniz o :)
public async Task WriteAsync(string data)
{
var buffer = Encoding.ASCII.GetBytes(data);
using (var fs = new FileStream(@"File", FileMode.OpenOrCreate,
FileAccess.Write, FileShare.None, buffer.Length, true))
{
await fs.WriteAsync(buffer, 0, buffer.Length);
}
}
zaman uyumsuz Edit
çalıştırmalısınız eğer bir bool
belirten alır doğru aşırı kullanmak zorunda Not senin string data
ve içine bak Bir byte[]
dönüşümü önlemek, bir dize kabul eden daha soyut ve daha az ayrıntılı StreamWriter.WriteAsync
aşırı yük kullanabilirsiniz:
public async Task WriteAsync(string data)
{
using (var sw = new StreamWriter(@"FileLocation"))
{
await sw.WriteAsync(data);
}
}
Öyle gibi Task
içindeki yöntemini çağırabilirsiniz: Orada bir görevi başlatmak için çeşitli yollar var ve bu sadece bunlardan biri
Task.Factory.StartNew(() => File.WriteAllText("test.txt","text"));
, bir here daha okuyun.
Bir GÇ bağlı isteği yapmak için bir threadpool parçacığı kullanmak gerekmez. Bu çağrı asenkronize edilmiyor –
Bu Yuval'in cevabından daha düşük. –
'StreamWriter.WriteAsync' veya' FileStream.WriteAsync' –
http://msdn.microsoft.com/en-us/library/jj155757.aspx – IVAAAN123