私たちのアプリにプッシュ通知を設定しています。私たちは今、どのユーザーに送信するかを決定し、それを前記のユーザーに送信するコンソールアプリケーションを作成しています。現時点でわからないことは、それぞれが完了した時点をどのように知っているかです。または完了していない?マイクロソフトから提供された多くのドキュメントはありません(そこには大きな驚きがあります)。そこに書かれているドキュメントは、実際のレスポンスの読み方を説明していません。Azure Notification Hub数千の通知を送信し、それぞれから結果を返す
たとえば、一度に何千人ものユーザーが通知を受け取る可能性があるため、実装する必要があると思われる例のスニペットが表示されます。
public async Task GenerateNotifications()
{
NotificationHubClient hub = NotificationHubClient.CreateClientFromConnectionString(AppHelper.AzureNotificationHubConnectionString, "myhub");
List<Task<NotificationOutcome>> notificaitonTasks = new List<Task<NotificationOutcome>>();
for (int i = 0; i < 10; i++)
{
var notification = new
{
aps = new
{
alert = string.Format("Awesome Notification {0}", i),
sound = "default"
}
};
string notificationJSON = JsonConvert.SerializeObject(notification);
notificaitonTasks.Add(hub.SendAppleNativeNotificationAsync(notificationJSON, "mytag"));
}
await Task.WhenAll(notificaitonTasks);
}
これは私たちに理にかなって、私たちはparralelスレッド上のすべてのタスクを実行するためにWhenAll
メソッドを使用します。しかし、それから実行される各タスクで何が起こるかを知る方法はありますか?たとえば、ContinueWith
メソッドは私たちが欲しいものをやっているようですが、はと思っています。これはすべてのタスクが完了した後にのみ実行され、各タスクの後には実行されません。
したがって、WhenAll
コールの各応答を読み取る方法はありますか?もしそうでなければ、私たちがやろうとしていることをするための良い方法がありますか?私は必要な他の情報を提供します、ちょうだいてください。