# ITransactionClient.RunTransaction(TransactionOption, Func&lt;Task&gt;, bool)

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.transactions/orleans.itransactionclient/) | [Methods](/orleans/docs/api/csharp/microsoft.orleans.transactions/orleans.itransactionclient/methods/)

```csharp
public abstract Task RunTransaction(TransactionOption transactionOption, Func<Task> transactionDelegate, bool useExclusiveLock)
```

Run transaction delegate with exclusive lock option

### Parameters

- `transactionOption` (`TransactionOption`)
- `transactionDelegate` (`Func<Task>`)
- `useExclusiveLock` (`bool`): When `true`, all transactional states accessed during this transaction will acquire exclusive locks even for read operations, preventing lock upgrade conflicts under high contention.

### Returns

`System.Threading.Tasks.Task`
