Tasks と async await をいじり始めています。既存のコードを変換する方法をよりよく理解するために、同期的に実行されている現在のメソッドを変更してみようと思いました。
private bool PutFile(FileStream source, string destRemoteFilename, bool overwrite)
{
if (string.IsNullOrEmpty(destRemoteFilename)) return false;
string path = Path.GetDirectoryName(destRemoteFilename);
if (path == null) return false;
if (!Directory.Exists(path)) Directory.CreateDirectory(path);
if (overwrite)
{
if (File.Exists(destRemoteFilename)) //delete file if it exists, because we are going to write a new one File.Delete(destRemoteFilename);
}
else if (File.Exists(destRemoteFilename)) return false;
using (FileStream dest = File.OpenWrite(destRemoteFilename))
{
source.Seek(0, SeekOrigin.Begin);
source.CopyTo(dest);
}
return true;
}
私は単純にメソッドを に変更しようとしasync
ましたTask<bool>
が、どちらも機能していないように見えるため、明らかに何かが欠けています。私が経験しType System.Threading.Task<bool>
たことは待ちきれません。