Introduction

Concurrency in Microsoft Power Apps means running multiple operations at the same time instead of one after another.

It is mainly used to improve app performance and reduce loading time by executing independent tasks in parallel using the Concurrent() function.

Example: Loading multiple data sources or collections simultaneously. 🚀

Example concept:

1️⃣ What is Concurrency in Power Apps?

Normally, formulas run sequentially:

Code
ClearCollect(Products, ProductsTable);
ClearCollect(Customers, CustomersTable);
ClearCollect(Orders, OrdersTable);

Here:

Total loading time = sum of all three operations.

2️⃣ Using the Concurrency Function

Power Apps provides the Concurrent() function to run tasks in parallel.

Example:

Code
Concurrent(
    ClearCollect(Products, ProductsTable),
    ClearCollect(Customers, CustomersTable),
    ClearCollect(Orders, OrdersTable)
)

Now:

Result:

3️⃣ When to Use Concurrency

Use Concurrent() when operations are independent.

Good examples:

Example:

Code
Concurrent(
    Set(UserProfile, Office365Users.MyProfile()),
    ClearCollect(ProjectList, Projects),
    ClearCollect(TaskList, Tasks)
)

4️⃣ When NOT to Use Concurrency

Avoid it when operations depend on each other.

Bad example:

Code
Concurrent(
    Set(varA, 10),
    Set(varB, varA + 5)   // varA may not be set yet
)

Because:

5️⃣ Real-World Example (App OnStart)

Many developers optimize App.OnStart like this:

Code
Concurrent(
    ClearCollect(colEmployees, Employees),
    ClearCollect(colDepartments, Departments),
    ClearCollect(colProjects, Projects),
    ClearCollect(colLocations, Locations)
)

This reduces startup time significantly.

6️⃣ Benefits of Concurrency

✔ Faster app startup

✔ Better performance

✔ Efficient data loading

✔ Improved user experience

✅ Quick Tip:

Microsoft recommends using Concurrent() mainly in App.OnStart or screen loading when retrieving multiple datasets.

Conclusion

Concurrency in Microsoft Power Apps helps improve app performance by allowing multiple independent tasks to run simultaneously using the Concurrent() function. This reduces loading time and makes apps faster and more efficient.