これらのメソッドを使用する正しい方法は何ですか?
私が知る限り、 UploadFromByteArrayAsync メソッドは、非同期操作を実行してバイト配列の内容をファイルにアップロードするタスクを返します。
データは非同期で could ファイルに転送されます。
詳細については、以下のコードを参照してください。
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
"connectionstring");
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();
CloudFileShare share = fileClient.GetShareReference("filesharename");
CloudFileDirectory rootDir = share.GetRootDirectoryReference();
int size = 5 * 1024 * 1024;
byte[] buffer = new byte[size];
Random rand = new Random();
rand.NextBytes(buffer);
CloudFile file = rootDir.GetFileReference("Log3.txt");
file.UploadFromByteArrayAsync(buffer, 0, buffer.Length);
BeginUploadFromByteArray メソッドは、非同期操作を開始して、バイト配列の内容をファイルにアップロードします。
このメソッドを使用すると、プログラムは UploadFromByteArrayAsync としてデータを非同期にファイルに転送します。
メソッドを使用する場合は、非同期操作の完了時に通知を受け取るコールバック メソッドを作成する必要があります。
詳細については、以下のコードを参照してください。
static void Main(string[] args)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
"connectionstring");
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();
CloudFileShare share = fileClient.GetShareReference("fileshare");
CloudFileDirectory rootDir = share.GetRootDirectoryReference();
int size = 5 * 1024 * 1024;
byte[] buffer = new byte[size];
Random rand = new Random();
rand.NextBytes(buffer);
CloudFile file = rootDir.GetFileReference("Log3.txt");
//This string will pass to the callback function
string result = "aa";
//Begins an asynchronous operation to upload the contents of a byte array to a file. If the file already exists on the service, it will be overwritten.
var res = file.BeginUploadFromByteArray(buffer, 0, buffer.Length, ProcessInformation, result);
}
static void ProcessInformation(IAsyncResult result)
{
//The callback delegate that will receive notification when the asynchronous operation completes.
string Name = (string)result.AsyncState;
//this Name is aa
Console.WriteLine(Name);
Console.WriteLine("Complete");
}
EndUploadFromByteArray メソッドは、BeginUploadFromByteArray メソッドが完全に実行されるまで待機します。
使用方法については、以下のコードを参照してください。
static void Main(string[] args)
{
// TableTest();
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
"connectionstring");
CloudFileClient fileClient = storageAccount.CreateCloudFileClient();
CloudFileShare share = fileClient.GetShareReference("fileshare");
CloudFileDirectory rootDir = share.GetRootDirectoryReference();
int size = 5 * 1024 * 1024;
byte[] buffer = new byte[size];
Random rand = new Random();
rand.NextBytes(buffer);
CloudFile file = rootDir.GetFileReference("Log3.txt");
file.UploadFromByteArrayAsync(buffer, 0, buffer.Length);
string result = "aa";
//Begins an asynchronous operation to upload the contents of a byte array to a file. If the file already exists on the service, it will be overwritten.
var res = file.BeginUploadFromByteArray(buffer, 0, buffer.Length, ProcessInformation, result);
//Ends an asynchronous operation to upload the contents of a byte array to a file.
//wait for the BeginUploadFromByteArray method execute completely then continue run the codes
file.EndUploadFromByteArray(res);
Console.ReadLine();
}
static void ProcessInformation(IAsyncResult result)
{
//The callback delegate that will receive notification when the asynchronous operation completes.
string Name = (string)result.AsyncState;
//this Name is aa
Console.WriteLine(Name);
Console.WriteLine("Complete");
}