# Microsoft.Threading.Tasks

**Kind:** Service

**Source:** `Pams/Logic/Pams.Email/Pams.Email.csproj` (line 1)

**Part of:** [Pams](subsystem-pams)

NuGet package dependency

`Microsoft.Threading.Tasks` is a NuGet package dependency declared for the `Pams.Email` project. It supports task-based asynchronous code in the email component and must be restored before the project is built or executed.

## Diagram

```mermaid
sequenceDiagram
    participant Developer
    participant Restore as NuGet Restore
    participant EmailProject as Pams.Email
    participant Tasks as Microsoft.Threading.Tasks

    Developer->>Restore: Restore Pams.Email dependencies
    Restore->>EmailProject: Read project package references
    EmailProject->>Tasks: Resolve Microsoft.Threading.Tasks
    Tasks-->>Restore: Package files restored
    Restore-->>Developer: Dependencies ready for build
```

## Usage

```ts
import { execFileSync } from "node:child_process";

const projectFile = "Pams/Logic/Pams.Email/Pams.Email.csproj";

execFileSync("dotnet", ["restore", projectFile], {
  stdio: "inherit",
});

execFileSync("dotnet", ["build", projectFile], {
  stdio: "inherit",
});
```

## AI Coding Instructions

- Keep `Microsoft.Threading.Tasks` aligned with the package declaration used by `Pams.Email`.
- Restore NuGet dependencies before building or testing changes in `Pams.Email`.
- Check the project file and related NuGet configuration before changing package versions.
- Preserve task-based asynchronous patterns in email code that depends on this package.
