一意の ID と asynoperationmanager を使用して実行中のメソッドを追跡したイベント ベースの非同期パターンから移行しようとしています。
これは Windows 8 アプリから削除されたため、Async/Await で同様の効果を得ようとしていますが、その方法がわかりません。
私が達成しようとしているのは、次のようなものです
private async Task updateSomething()
{
if(***the method is already running***)
{
runagain = true;
}
else
{
await someMethod();
if (runagain)
{
run the method again
}
}
}
私が苦労している部分は、メソッドが実行されているかどうかを調べることです。Task を作成して、それと async メソッドの .status の両方のステータスを調べてみましたが、正しい場所ではないようです。ありがとう
更新: これは、同じ結果を得るために .net 4 で使用している現在のコードです。_updateMetaDataAsync は、イベント ベースの非同期パターンに基づくクラスです。
private void updateMetaData()
{
if (_updateMetaDataAsync.IsTaskRunning(_updateMetaDataGuid_CheckAllFiles))
{
_updateMetaDataGuid_CheckAllFiles_Again = true;
}
else
{
_updateMetaDataGuid_CheckAllFiles_Again = false;
_updateMetaDataAsync.UpdateMetaDataAsync(_updateMetaDataGuid_CheckAllFiles);
}
}
private void updateMetaDataCompleted(object sender, UpdateMetaDataCompletedEventArgs e)
{
if (_updateMetaDataGuid_CheckAllFiles_Again)
{
updateMetaData();
}
}