asynchronous programming with c#

59
ASYNCHRONOUS PROGRAMMING with C# MUHAMMED CUMA TAHİROĞLU @DEVMUCIT

Upload: muhammed-cuma-tahiroglu

Post on 08-Aug-2015

145 views

Category:

Technology


10 download

TRANSCRIPT

ASYNCHRONOUS PROGRAMMINGwith C#

MUHAMMED CUMA TAHİROĞLU@DEVMUCIT

MUHAMMED CUMA TAHİROĞLU@devmucit tahiroglu.com

COFFEE SHOP ANALOGYThe Awkward Starbucks Queue

«ÇAYCI» ANALOGYAnnouncing...

Berber Bakkal Terzi

SINGLE THREADED - ASYNCHRONOUS

Berber Bakkal Terzi

TASK PARALLELISM

NON-BLOCKING I/O

CONCURRENCYPARALLEL COMPUTING

DATA PARALLELISMTASK PARALLELISM

MULTI-THREADING

ASYNCHRONOUS PROGRAMMINGSYNCHRONOUS PROGRAMMING

CONCURRENCYPARALLEL COMPUTING

DATA PARALLELISMTASK PARALLELISM

MULTI-THREADING

ASYNCHRONOUS PROGRAMMINGSYNCHRONOUS PROGRAMMING

CONCURRENCYPARALLEL COMPUTING

DATA PARALLELISMTASK PARALLELISM

MULTI-THREADING

ASYNCHRONOUS PROGRAMMINGSYNCHRONOUS PROGRAMMING

TASK

FREE LUNCH IS OVER2005

THREAD

OS

Main

Worker

Worker

Main

Worker

Worker

Main

Worker

Worker

Worker

THREATSAFETY

D

LOCKING

EXCEPTIONHANDLING

THREADPOOL

• WCF, Remoting, ASP.NET, ASMX Web Services• System.Timers.Timer, System.Threading.Timer• The parallel programming constructs • The (now redundant) BackgroundWorker class• Asynchronous delegates (also now redundant)

We Use THREADPOOL Proudly

Tasks can have RETURN VALUEsTasks can be COMPOSEDTasks may or may not use THREADsTasks can use THREADPOOL Tasks can provide CALLBACK APPROACHTasks are more powerful with ASYNCHRONOUS functions

STARTING A TASK ON THREAD POOL

LONG RUNNUNG TASKS

I/O CPUloves CALLBACKS

loves WORKERSloves PARALLELISM

RETURN VALUES

EXCEPTIONS

TASKCOMPLETIONSOURCE

NON-BLOCKING CODE

LEGACY API WRAPPER

ASYNCHRONOUSPROGRAMMING

A B C

FINE GRAIN CONCURRENCY

A B C

COURSE GRAIN CONCURRENCY

WEB or APPLICATION

SERVER

DB QUERY

TRANSACTION

3rd PARTY INVOKE

USER REQUESTS

THREAD IN-EFFICIENCY BECAUSE OF SYNCHRONOUS PROGRAMMING

1 MB per thread

A B C

ASYNCAWAIT

A C# 5 GOODNESS

TASK COMBINATORS

TASK COMBINATORS

C# 6: COMING SOON

C# 6: COMING SOON

THANK YOU

NE YAPALIM?TASK DONE!

tahiroglu.com

NE YAPALIM?@DEVMUCIT