In Akka.Net there is the nice design inside an actor, to start a task with
Task.Run and pipe the result back to the actor:
Task.Run(() => Method(...)).PipeTo(self);
Note, there is no IO involved.
there is a little bit of pre-processing, then I have to wait on a call to a
Task<Model> and a little bit of post-processing.
Task<Model> is in a third-party library, I cannot change it.
Currently I do
var model = proxy.GetModel(..).Result inside a
AggregateException is taken into account.
Another idea is to use this with
var model = await proxy.GetModel(..) inside a
and changing the signature to
async Task<Model> Method(...)
How should I change the call to Method in the actor?
Task.Run(() => Method(...).Result).PipeTo(self); Task.Run(async () => await Method(...)).PipeTo(self);
Which approach is better, what is the difference?