# Microsoft.Threading.Tasks

**Kind:** Service

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

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

NuGet package dependency

Microsoft.Threading.Tasks is a NuGet package dependency declared by `Pams.Storage`. It supplies task-based asynchronous APIs for the storage project when its target framework does not provide the required `Task` types.

## Diagram

```mermaid
sequenceDiagram
    participant Build as Build process
    participant Storage as Pams.Storage
    participant NuGet as NuGet restore
    participant Tasks as Microsoft.Threading.Tasks

    Build->>NuGet: Restore project dependencies
    NuGet->>Tasks: Resolve package
    Tasks-->>NuGet: Provide Task API assemblies
    NuGet-->>Storage: Add resolved references
    Storage-->>Build: Compile asynchronous storage code
```

## Usage

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

// Microsoft.Threading.Tasks is consumed by the .NET Pams.Storage project,
// not imported directly from TypeScript.
execFileSync(
  "dotnet",
  ["build", "Pams/Logic/Pams.Storage/Pams.Storage.csproj"],
  { stdio: "inherit" }
);
```

## AI Coding Instructions

- Keep `Microsoft.Threading.Tasks` configured as a NuGet dependency of `Pams.Storage`.
- Restore NuGet packages before building code that references task-based asynchronous APIs.
- Do not import this package from TypeScript or JavaScript; it is consumed by the .NET project during compilation.
- Check target-framework compatibility before removing or changing this legacy-format package dependency.

## Used by

2 references from 2 files. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Injected or called by (2)

- `Pams.Email` — `Pams/Logic/Pams.Email/Pams.Email.csproj`:1
- `Pams.Storage` — `Pams/Logic/Pams.Storage/Pams.Storage.csproj`:1
