C#
C# -- Task.Delay 사용법 ; UI 화면 block 관계
자유프로그램
2021. 2. 4. 13:38
반응형
환경 : 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 사용 예 >>
반응형