From 073114d2c1ef7a07592e565e5b6b21645674407b Mon Sep 17 00:00:00 2001 From: Jacob Alber Date: Fri, 3 Apr 2026 17:44:13 -0400 Subject: [PATCH] refactor: Update Concurrent sample to use message delivery event callback --- .../Concurrent/Concurrent/Program.cs | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/dotnet/samples/03-workflows/Concurrent/Concurrent/Program.cs b/dotnet/samples/03-workflows/Concurrent/Concurrent/Program.cs index e039713667..c5f77c80f4 100644 --- a/dotnet/samples/03-workflows/Concurrent/Concurrent/Program.cs +++ b/dotnet/samples/03-workflows/Concurrent/Concurrent/Program.cs @@ -140,17 +140,19 @@ internal sealed partial class ConcurrentAggregationExecutor() : public override async ValueTask HandleAsync(List message, IWorkflowContext context, CancellationToken cancellationToken = default) { this._messages.AddRange(message); + } - if (this._messages.Count == 2) + protected override ValueTask OnMessageDeliveryFinishedAsync(IWorkflowContext context, CancellationToken cancellationToken = default) + { + StringBuilder resultBuilder = new(); + foreach (ChatMessage m in this._messages) { - StringBuilder resultBuilder = new(); - foreach (ChatMessage m in this._messages) - { - resultBuilder.AppendLine($"{m.AuthorName}: {m.Text}"); - resultBuilder.AppendLine(); - } - - await context.YieldOutputAsync(resultBuilder.ToString(), cancellationToken); + resultBuilder.AppendLine($"{m.AuthorName}: {m.Text}"); + resultBuilder.AppendLine(); } + + this._messages.Clear(); + + return context.YieldOutputAsync(resultBuilder.ToString(), cancellationToken); } }