KEMBAR78
Asynchronous Programming with C# | PDF
ASYNCHRONOUS
PROGRAMMING
with C#
MUHAMMED CUMA TAHİROĞLU
@DEVMUCIT
MUHAMMED CUMA TAHİROĞLU
@devmucit tahiroglu.com
COFFEE SHOP ANALOGY
The Awkward Starbucks Queue
«ÇAYCI» ANALOGY
Announcing...
Berber Bakkal Terzi
SINGLE THREADED - ASYNCHRONOUS
Berber Bakkal Terzi
TASK PARALLELISM
NON-BLOCKING I/O
CONCURRENCY
PARALLEL COMPUTING
DATA PARALLELISM
TASK PARALLELISM
MULTI-THREADING
ASYNCHRONOUS PROGRAMMING
SYNCHRONOUS PROGRAMMING
CONCURRENCY
PARALLEL COMPUTING
DATA PARALLELISM
TASK PARALLELISM
MULTI-THREADING
ASYNCHRONOUS PROGRAMMING
SYNCHRONOUS PROGRAMMING
CONCURRENCY
PARALLEL COMPUTING
DATA PARALLELISM
TASK PARALLELISM
MULTI-THREADING
ASYNCHRONOUS PROGRAMMING
SYNCHRONOUS PROGRAMMING
TASK
FREE LUNCH
IS OVER
2005
THREAD
OS
Main
Worker
Worker
Main
Worker
Worker
Main
Worker
Worker
Worker
THREAT
SAFETY
D
LOCKING
EXCEPTION
HANDLING
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 VALUEs
Tasks can be COMPOSED
Tasks may or may not use THREADs
Tasks can use THREADPOOL
Tasks can provide CALLBACK APPROACH
Tasks are more powerful with ASYNCHRONOUS functions
STARTING A TASK ON THREAD POOL
LONG RUNNUNG TASKS
I/O CPUloves CALLBACKS
loves WORKERS
loves PARALLELISM
RETURN VALUES
EXCEPTIONS
TASKCOMPLETIONSOURCE
NON-BLOCKING CODE
LEGACY API WRAPPER
ASYNCHRONOUS
PROGRAMMING
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
ASYNC
AWAIT
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

Asynchronous Programming with C#