# Run<T>(T, int)

> Performs the job's Execute method immediately on the same thread.

## Definition

* **Type:** Method
* **Namespace:** [Unity.Jobs](/engine/6000.5/script-reference/unity/jobs.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public static void Run<T>(this T jobData, int arrayLength) where T : struct, IJobParallelFor
```

### Parameters

**** (T): The job and data to execute.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): This job's Execute method will be called this many times, with its index argument ranging from 0 to (arrayLength - 1). Typically, this corresponds to the length of an array or array-like container passed in the job struct, but this is not necessarily the case.

### Remarks

While this method is useful in development or test environments, it is typically a mistake to use it in production; it offers no real benefits over implementing the job code as a simple main-thread function call. To schedule a job to run asynchronously, use [IJobParallelForExtensions.ScheduleByRef](/engine/6000.5/script-reference/unity/jobs/ijobparallelforextensions/schedulebyref.md).

For large job structs, use [IJobParallelForExtensions.RunByRef](/engine/6000.5/script-reference/unity/jobs/ijobparallelforextensions/runbyref.md) to avoid any large pass-by-values.

Additional Resources: [IJobParallelFor](/engine/6000.5/script-reference/unity/jobs/ijobparallelfor.md).
