반응형
환경 : 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 사용 예 >>
반응형
'C#' 카테고리의 다른 글
C# -- Enter 키 입력시 삐소리 제거 및 'Tab' 키 입력으로 변환하기 (0) | 2021.01.28 |
---|---|
C# - 문자열 양방향 암호화 ( RijndaelManaged ) (0) | 2021.01.25 |
C# -- HttpClient 기본 사용법 ; http, https (0) | 2021.01.01 |
C# -- DataGridView 에 List 바인딩시, attribute 이용한, 컬럼명 변경 or 숨기기 (0) | 2020.10.30 |
C# -- popup listbox window 구현하기 (0) | 2020.09.16 |