이 코드는 무엇을 인쇄합니까? | Ayende Rahien

적절한 카테고리를 찾기가 어렵군요 ^^; Ayende Rahien님이 다음의 코드를 제시하면서 어떤 결과가 출력 되는지는 물어봅니다.

using System;
using System.Threading;
using System.Threading.Tasks;

await new Scenario().Run();

public class Scenario
{
    public AsyncLocal<bool> Active = new();

    private async Task Start()
    {
        Active.Value = true;
    }

    public async Task Run()
    {
        Console.WriteLine(Active.Value);
        await Start();
        Console.WriteLine(Active.Value);
    }
}

2개의 좋아요

AsyncLocal<T>란 녀석부터 뭔지 모르겠군요 ㅋㅋㅋㅋㅋ

4개의 좋아요

저도 AsyncLocal이 무엇인지 모르겠네요…

직관적으로는

false
true

일 것 같은데… 출제자의 의도로 파악해보자면,

true
true

일지도 모르겠네요.

2개의 좋아요

Thread Local Storage(TLS)
와 비슷한 클래스 입니다.

스레드별 고유 데이터를 보관하고 동기화 하는데 목적이 있습니다.

다음 글을 가볍게 보시면 도움이 조금? 이나마 될것같습니다.

3개의 좋아요