Asynchrone Programmiermodelle

시작하기. 무료입니다
또는 회원 가입 e메일 주소
Asynchrone Programmiermodelle 저자: Mind Map: Asynchrone Programmiermodelle

1. Window Runtime

1.1. Rückgabewert der WinRT-API

1.1.1. IAsyncOperation<T>

1.1.2. IAsyncAction

1.1.3. .StartAsTask()

1.2. Asynchron wird zur Norm

1.2.1. Libraries werden verstärkt um Async-Methoden erweitert

1.2.2. UI-Thread freigeben

1.2.2.1. für das längere, bessere und ruckelfreie durchsuchen der Bauklötzchen ;-)

1.3. Rückgabe

1.3.1. Task

1.3.1.1. Kontrollierbar

1.3.1.2. für Hilfsmethoden und Bibliotheken

1.3.2. void

1.3.2.1. "Fire and Forget"

1.3.2.2. Event-Handler

1.3.2.3. override void-Methoden

2. .NET Framework

2.1. Rückgabewert C#/VB.NET

2.1.1. Task<T>

2.1.1.1. Yielding

2.1.1.1.1. Task.Delay(ms)

2.1.1.1.2. Yield()

2.1.1.2. Background

2.1.1.2.1. await Task.Run(()=> {...});

2.1.1.3. Parallel

2.1.1.3.1. await Task.WhenAny(t1,t2)

2.1.1.3.2. await Task.WhenAll(t1,t2)

2.2. Asynchrone Methoden mit

2.2.1. Callbacks

2.2.1.1. Code Inside out

2.2.1.2. Asynchrone Methoden in Callback State machine transformieren

2.2.1.2.1. Transformation

2.2.1.2.2. Heap-allocated state machine

2.2.2. Abbruch mit

2.2.2.1. CancellationToken

2.2.2.1.1. CancellationTokenSource cts

2.2.2.2. OperationCanceledException

2.2.3. Fortschritt

2.2.3.1. IProgress

2.2.4. async

2.2.4.1. Rückgabewert der Methodensignatur muss vom Typ Task<T> sein

2.2.4.1.1. Wrapper

2.2.4.1.2. return-Wert muss nur T sein

2.2.4.2. macht die Methode Asynchron

2.2.5. await

2.2.5.1. Nicht in catch/finally verwenden

2.2.5.2. unter yield-Kontrolle

2.2.5.3. aufgerufene Methoden benötigen "awaiter pattern"

2.2.5.4. übernimmt das Callback

2.3. Vorteile

2.3.1. Vereinfachter Code

2.3.1.1. liest sich wie synchroner Code

2.3.2. Bessere Fehlerbehandlung

2.4. Herausforderungen

2.4.1. Overhead berücksichtigen

2.4.1.1. Gleiche Regeln wie bei der TPL

2.4.1.1.1. kleine Einheiten lohnen sich nicht immer

2.4.1.1.2. zuerst nachdenken

2.4.1.2. Kosten

2.4.1.2.1. Hierarchieaufrufe von div. Methoden

2.4.1.2.2. Garbage Collection

2.4.1.2.3. awaits minimieren

2.4.2. Synchronisation

2.4.2.1. WindowsFormSyncronisationContext

2.4.2.1.1. Control.BeginINvoke

2.4.2.2. DispatcherSynchronizationContext

2.4.2.2.1. Dispatcher.BeginInvoke

2.4.2.3. AspNetSynchronizationContext

2.4.2.4. await

2.4.2.4.1. fährt auf aktuellen SynchronisationContext weiter

2.4.3. Deadlook vermeiden

3. Javascript

3.1. verwendbar mit C#

3.1.1. Referenzierung von C#-Projekten in Javascript möglich

3.2. Promises

3.2.1. Async-Methoden sind automatisch promises

3.2.1.1. Weiterverarbeitung mit .then

3.2.1.1.1. .then(function (result) { //code für Darstellung; });

3.3. Alternativen

3.3.1. node

3.3.1.1. node-fibers

3.3.1.2. bald node.js native

3.3.2. tame.js

3.3.3. streamlinejs

3.3.4. Herausforderung

3.3.4.1. Wildwuchs begegnen

4. Ressourcen

4.1. MSDN Async

4.2. build 11

4.2.1. Future C#/VB.NET

4.2.2. The zen of async

4.2.3. Slides ASP.NET apps with async

4.2.4. Async in Win 8