반응형

환경 : visual studio community 2017

 

 

 

Task.Delay(200);   // no UI delay

 

await Task.Delay(200); // no UI block , UI delay ok

 

Task.Delay(200).Wait();   // UI block, UI delay ok

 

Task.Delay(3000).GetAwaiter().GetResult();   // UI block, UI delay ok

 

 

 

 

< 실행 화면 >

 

<< 소스 >>

gist.github.com/jayu108/809b32014217ad64207caeb1c7b13459

 

 

1. await Task.Delay

   -- no UI block

   -- delay ok

 

2.Task.Run 내에서, Task.Delay 사용.

-- UI block

-- delay ok

 

 

3. Task.Factory.StartNew 내에서, Task.Delay 사용.

   -- no UI block

   -- no UI delay ( Task 에서는 delay 발생하지만, UI 에서는 delay 발생하지 않음)

 

 

 

4.  Task.Delay(...).GetAwaiter().GetResult()

    -- UI block

    -- UI delay ok

 

 

 

<< for Loop 사용 예 >>

 

 

 

 

반응형
Posted by 자유프로그램
,