Ich muss ein Argument vom Typ Task
an eine Funktion übergeben, die hier nicht dargestellt wird. Innerhalb der Funktion wird diese Aufgabe asynchron ausgeführt. Wenn es einen Unterschied zwischen diesen drei Möglichkeiten, passieren sie:Task.Run vs Invoke() Unterschied
1.
Task.Run((Func<Task>)(async() => Foo = await OperateAsync(id)))
2.
Task.Run(async() => Foo = await OperateAsync(id))
3.
((Func<Task>)(async() => Foo = await OperateAsync(id))).Invoke()
Ist der zweite Ansatz in Bezug auf die Leistung besser als der erste? – AsValeO
@AsValeO Es sollte das gleiche sein. Wenn beides messbar schneller ist, denke ich, das ist eine verpasste Chance für den anderen. Wenn Sie wegen der Delegiertenkonstruktion fragen, sollten Sie bedenken, dass dies auch im zweiten Fall implizit geschieht. – hvd