私は現在、タスク、非同期、および Windows ストア (「メトロ」) アプリで待機する方法を学習しています。私はプロパティに出くわし、Task.CurrentId
それがどのように機能するかを理解しようとしました.
MSDNによると、「システムによって現在実行中のタスクに割り当てられた整数」が返されます。そこで、この値をカスタム ロガーに記録する機能を追加しましたが、驚いたことに、テスト アプリでnull
.
この例を見てください:
private async void TestButton_Click(object sender, RoutedEventArgs e)
{
int? id1 = Task.CurrentId;
await Task.Delay(100);
int? id2 = Task.CurrentId;
StorageFolder folder = ApplicationData.Current.LocalFolder;
StorageFile file = await folder.CreateFileAsync("test.txt",
CreationCollisionOption.OpenIfExists);
int? id3 = Task.CurrentId;
await FileIO.AppendTextAsync(file, "test");
int? id4 = Task.CurrentId;
await DoMoreAsync();
int? id7 = Task.CurrentId;
}
private async Task DoMoreAsync()
{
StorageFolder folder = ApplicationData.Current.LocalFolder;
StorageFile file = await folder.CreateFileAsync("test.txt",
CreationCollisionOption.OpenIfExists);
int? id5 = Task.CurrentId;
await FileIO.AppendTextAsync(file, "test");
int? id6 = Task.CurrentId;
}
これらの ID はすべてnull
. なんで?このコードはタスクを作成しますね。彼らはIDを持っているべきではありませんか?