닷넷과 WINRT의 비동기 패턴                  훈스닷넷             WINDOWS 8 시삽                    윤병걸
WINDOWS 8 PLATFORM
비동기 프로그래밍 모델    .NET Framework          WinRT •Task               •IAsyncOperation<T> •Task<T>            •IAsyncAction
LANGUAGE PROJECTIONS
TASK, TASK<T>• TASKCOMPLETIONSOURCE<TRESULT>• CONFIGUREAWAIT()• CANCELLATIONTOKENSOURCE• WHENANY(), WHENALL()• WAITALL(), ...
TASKCOMPLETIONSOURCE<TRESULT>• TASK를 만드는 일반적인 매커니즘• SETERROR ()• SETCANCEL()• SETRESULT()
WinRTSynchronizationContextOnCompleted(Action continuation)                                                   Post()      ...
CONFIGUREAWAIT(TRUE OR FALSE)• 컴파일러의 마샬링 작업 수행여부를 결정• TRUE : (DEFAULT) 마샬링 작업 수행• FALSE : 마샬링 작업 수행하지 않음
CANCELLATIONTOKENSOURCE• 현재 수행중인 비동기 작업에 취소요청• TOKEN을 부여할 때마다 새로운 복사본을 생성• 작업을 취소하는 경우 대리자에서 THROWIFCANCELLATIONREQUESTED를...
IPROGRESS• TASK에서 진행률을 표시하는데 사용
COMBINATORS• WHENALL, WHENANY• WAITALL, WAITANY• CONTINUEWITH
WINRT 비동기 기본 형식
ASYNCINFO.RUN• TASK를 IASYNCOPERATION형으로 변환• 비동기 작업에 취소를 지원할 수 있음• 비동기 작업에 진행률 표시를 지원할 수 있음
IASYNCOPERATION 구현
ASASYNCOPERATION의 구현
STATUS 비교From TaskStatus                                     To AsyncStatusRanToCompletion                                ...
AsAsyncOperation()                                                 WinRT용                                  IAsync     라이브러...
REFERENCE•   HTTP://BLOGS.MSDN.COM/B/WINDOWSAPPDEV/ARCHIVE/2012/04/24/DIVING-DEEP-WITH-    WINRT-AND-AWAIT.ASPX•   HTTP://...
QUESTION
THANK YOU
Upcoming SlideShare
Loading in …5
×

닷넷과 Win rt의 비동기 패턴

1,570 views
1,410 views

Published on

Sample Download here : https://skydrive.live.com/?cid=32af35171a69595b&id=32AF35171A69595B%21265

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,570
On SlideShare
0
From Embeds
0
Number of Embeds
860
Actions
Shares
0
Downloads
7
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

닷넷과 Win rt의 비동기 패턴

  1. 1. 닷넷과 WINRT의 비동기 패턴 훈스닷넷 WINDOWS 8 시삽 윤병걸
  2. 2. WINDOWS 8 PLATFORM
  3. 3. 비동기 프로그래밍 모델 .NET Framework WinRT •Task •IAsyncOperation<T> •Task<T> •IAsyncAction
  4. 4. LANGUAGE PROJECTIONS
  5. 5. TASK, TASK<T>• TASKCOMPLETIONSOURCE<TRESULT>• CONFIGUREAWAIT()• CANCELLATIONTOKENSOURCE• WHENANY(), WHENALL()• WAITALL(), WAITANY()• ETC…
  6. 6. TASKCOMPLETIONSOURCE<TRESULT>• TASK를 만드는 일반적인 매커니즘• SETERROR ()• SETCANCEL()• SETRESULT()
  7. 7. WinRTSynchronizationContextOnCompleted(Action continuation) Post() Continuation delegateAsync UI Thread Message Pump Message Queue
  8. 8. CONFIGUREAWAIT(TRUE OR FALSE)• 컴파일러의 마샬링 작업 수행여부를 결정• TRUE : (DEFAULT) 마샬링 작업 수행• FALSE : 마샬링 작업 수행하지 않음
  9. 9. CANCELLATIONTOKENSOURCE• 현재 수행중인 비동기 작업에 취소요청• TOKEN을 부여할 때마다 새로운 복사본을 생성• 작업을 취소하는 경우 대리자에서 THROWIFCANCELLATIONREQUESTED를 호출하는 것을 권장.
  10. 10. IPROGRESS• TASK에서 진행률을 표시하는데 사용
  11. 11. COMBINATORS• WHENALL, WHENANY• WAITALL, WAITANY• CONTINUEWITH
  12. 12. WINRT 비동기 기본 형식
  13. 13. ASYNCINFO.RUN• TASK를 IASYNCOPERATION형으로 변환• 비동기 작업에 취소를 지원할 수 있음• 비동기 작업에 진행률 표시를 지원할 수 있음
  14. 14. IASYNCOPERATION 구현
  15. 15. ASASYNCOPERATION의 구현
  16. 16. STATUS 비교From TaskStatus To AsyncStatusRanToCompletion CompletedFaulted ErrorCanceled CanceledAll other values & cancellation was requested CanceledAll other values & cancellation was not requested Started
  17. 17. AsAsyncOperation() WinRT용 IAsync 라이브러리를 제작IAsyncOperation Task 한다면 보다 많은 제공. operation IAsyncOperation 타입을 반환해야 함. AsTask()
  18. 18. REFERENCE• HTTP://BLOGS.MSDN.COM/B/WINDOWSAPPDEV/ARCHIVE/2012/04/24/DIVING-DEEP-WITH- WINRT-AND-AWAIT.ASPX• HTTP://BLOGS.MSDN.COM/B/WINDOWSAPPDEV/ARCHIVE/2012/06/14/EXPOSING-NET- TASKS-AS-WINRT-ASYNCHRONOUS-OPERATIONS.ASPX• HTTP://MSDN.MICROSOFT.COM/EN-US/LIBRARY/DD997364.ASPX• HTTP://MSDN.MICROSOFT.COM/EN-US/MAGAZINE/FF959203.ASPX
  19. 19. QUESTION
  20. 20. THANK YOU

×