Hoons 닷넷 정기세미나

1,491 views

Published on

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

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

  • Be the first to like this

No Downloads
Views
Total views
1,491
On SlideShare
0
From Embeds
0
Number of Embeds
882
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 콜러에 대한 간단한 데모를 먼저 보시겠습니다.
  • Hoons 닷넷 정기세미나

    1. 1. Hoons 닷넷 정기세미나
    2. 2. Windows 8 Sysop  Hoons 닷넷 6기 Silverlight Sysop  Hoons 닷넷 7기 Windows 8 Sysop  HugeFlow 근무  Windows 8 13인의 멘토 그룹  해커톤 , WOWZAPP Windows 8 C# 멘토로 활동  서울 시립대 C# 및 Windows 8 강의  현재 Windows 8 용 멜론앱 개발중
    3. 3. Agenda  C#의 변천사  C# 5.0 (Caller)  C#의 비동기 패턴  C# 5.0 비동기 패턴  Question
    4. 4. C# 1.0  Managed Code  Delegate
    5. 5. C# 2.0 BoxingPrimitive objectType GenericCustomType Unboxing
    6. 6. C# 3.0 • var query = from p in People select new Query { Expression Name = p.name, Age = p.age }; Lambda Expression •x => x * x;
    7. 7. C# 4.0  dynamic 타입 지원  인터페이스와 대리자에 Covariance와 Contravariance를 지원
    8. 8. C#의 변천사 C# 5.0 C# 4.0 • Asynchronous • Dynamic Programming Programming C# 3.0 • LINQ C# 2.0 Generics C# 1.0 Managed Code
    9. 9. Caller  CallerFilePath  CallerLineNumber  CallerMemberName
    10. 10. CallerMemberName Caller occurs within Member name result Method, property or event 호출한 메서드나 프로퍼티나 이벤트의 이름 Constructor “.ctor” 문자열 Static Constructor “.cctor” 문자열 Destructor “Finalize” 문자열
    11. 11. Demo
    12. 12. 비동기 프로그래밍? 복잡한 작업이 프로그램의 나머지 부분들과 동시에 실행할 수 있도록 구현 하는 기술. 주로 복잡한 작업이나 오래 걸리는 작업으로 인해 UI가 동작하지 않고 멈추 는 현상이 발생하는 그래픽 UI가 있는 프로그램에서 사용된다.
    13. 13. varvar
    14. 14. C#에서 제공하는 비동기 패턴  Thread  ThreadPool  Event based pattern  IAsyncResult pattern  Task based asynchronous pattern  Etc….
    15. 15. Thread & ThreadPool  닷넷에서 사용되는 가장 기본적인 Thread 객체
    16. 16. Event based pattern  가장 많이 사용하는 비동기 방식 RunWork  이벤트를 통해 완료시점을 알 수 있음  구현에 대한 규칙이 딱히 공식적으로 정해지지 않음 Dowork Completed
    17. 17. IAsyncResult pattern BeginInvoke AsyncCallback EndInvoke
    18. 18. Task based asynchronous pattern  반환타입에 따라 Task 또는 Task<TResult>를 반환  접미사로 Async 사용, 만약 Async를 사용 중이면 TaskAsync 추가
    19. 19. async / await  public async void GetAsync() { await HttpClient.DownloadAsync(…); }
    20. 20. Demo
    21. 21. Asynchronous methods automaticallytransform normal code into a callback statemachine
    22. 22. private class btnDoWork_ClickStateMachine : IAsyncStateMachine{ // Member fields for preserving locals and other necessary state int $state; TaskAwaiter<string> $awaiter; int result; ... // Method that moves to the next state in the state machine public void MoveNext() { // Jump table to get back to the right statement upon resumption switch (this.$state) { ... case 2: goto Label2; ... } ... // Expansion of await ...; var tmp1 = ThreadPool.RunAsync(delegate { this.result = Compute(); }); this.$awaiter = tmp1.GetAwaiter(); if (!this.$awaiter.IsCompleted) { this.$state = 2; this.$awaiter.OnCompleted(MoveNext); return; Label2: } this.$awaiter.GetResult(); ... }
    23. 23. Question
    24. 24. To be continue…

    ×