> For the complete documentation index, see [llms.txt](https://vostok.gitbook.io/context/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vostok.gitbook.io/context/quick-start.md).

# Quick Start

## [Installing from NuGet](https://www.nuget.org/packages/Vostok.Context/) <a href="#installing-from-nuget" id="installing-from-nuget"></a>

Dependencies: .NETStandart 2.0

```
PM> Install-Package Vostok.Context -Version 0.1.1
```

## SetUp

Let's look at one case.\
We want to create some threads and make the general context for all of them.

Step 1: Include  `Vostok.Context`  library in project:

```csharp
using Vostok.Context;
```

Step 2: Create `FlowingContext` in the `Main` void:

```csharp
 static void Main(string[] args)
{
    FlowingContext.Properties.Set("data", "The same context");
}
```

Step 3: Create  `DisplayData` . This void writes thread's number and data from `FlowingContext` to the Console:

```csharp
static void DisplayData()
{
    var data = FlowingContext.Properties.Current["data"];
    var id = Thread.CurrentThread.ManagedThreadId;
    Console.WriteLine($"{data}, thread = {id}");
}
```

Step 4: Additionally, write the async task `Work`. With it process some threads:

```csharp
static async Task Work()
{
    DisplayData();
    await Task.Run(() => DisplayData());
}
```

Step 5: Call the `Work` from Main:

```csharp
 static void Main(string[] args)
{
    FlowingContext.Properties.Set("data", "The same context");

    Work();
    Thread.Sleep(100);
}
```

Result:

```aspnet
The same context, thread = 1
The same context, thread = 3
```

Even though the threads were different, context was same.

## First usage
