비동기/대기와 함께 몇 가지 시도했지만 실제로 얻지는 않습니다. 처음에는 두 개의 다른 스레드에서 콘솔에 동시에 쓰는 것뿐입니다. 여기에 코드입니다 : 간단하지만 비동기로했다 스레드와비동기를 올바르게 사용하는 방법
static void Main(string[] args)
{
DoSomethingAsync();
for (int i = 0; i < 1000; i++)
Console.Write(".");
Console.ReadLine();
}
static async void DoSomethingAsync()
{
Console.WriteLine("DoSomethingAsync enter");
//This does not seem good
await Task.Delay(1);
for (int i = 0; i < 1000; i++)
Console.Write("X");
Console.WriteLine("DoSomethingAsync exit");
}
/I이 이상한
에 내가 이것을 사용 톱await Task.Delay(1);
가장 기본적인 예를 넣을 때 나는 단지 그것을 끝낼 기다리고 있습니다. 그러나 비동기가 아닌 무언가 타임 아웃을 원할 때 무엇을해야할까요? 아무 것도 기다리지 않고 모든 코드가 주 스레드에서 실행됩니다. 이 코드와 동일한 동작을하지만 Task.Delay()를 사용하지 않으면 어떻게됩니까?
'비동기 무효'를 사용하지 마십시오. – SLaks
[async-await curation] (https://curah.microsoft.com/45553/asyncawait-general)을보십시오. –