# AsyncSerialExecutor&lt;TResult&gt;

Package: [Microsoft.Orleans.Core](/orleans/docs/api/csharp/microsoft.orleans.core/) 10.0.0

[NuGet package](https://www.nuget.org/packages/Microsoft.Orleans.Core) | [Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Core/Async/AsyncSerialExecutor.cs#L16)

```csharp
public class AsyncSerialExecutor<TResult>
```

A utility class that provides serial execution of async functions. In can be used inside reentrant grain code to execute some methods in a non-reentrant (serial) way.

## Type parameters

- `TResult`: The underlying type returned from functions invoked by this executor.

## Constructors

- [AsyncSerialExecutor&lt;TResult&gt;](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.asyncserialexecutor-1/constructors/constructor-8c998a72/)

## Methods

- [AddNext(Func&lt;Task&lt;TResult&gt;&gt;)](/orleans/docs/api/csharp/microsoft.orleans.core/orleans.asyncserialexecutor-1/methods/addnext-system-func-system-threading-tasks-task-tresult-b760c4bf/)
