AFAIK - ( and I read a lot about it), asynchronous methods (not asynchronous delegates !) exists to solve the "thread is blocked" problem when dealing with I/O operations like : reading a file or downloading a file :
Richter shows it quite clearly here :
Task<T>
is not related to the i/o blocking issue. it is simply just like open a thread ( plus extra efficiency + functionality ) - but it still causes a thread to consume cpu quanta etc.
And here is my question :
I've read (msdn) that :
An async method provides a convenient way to do potentially long-running work without blocking the caller's thread. The caller of an async method can resume its work without waiting for the async method to finish.
Is it just like creating a
Task<t>
withContinueWith
?Doesn't the terminology is confusing ?
asynchronous methods
are fori/o
operations (where there are zero threads waiting while i/o operation is made and no thread is dealing with it). But to call a code (which use async) as:asynchronous methods
is a bit confusing. don't you think ? because I assume there is another thread which is executing...(which is my first question actually).
Where is the confusion from ?
Because Albahari tend to emphasize what Asynchronous methods are for :
p.s. I've read a few question here at SO regarding this topic , but found none which talks about the misclassification that asynchronous methods are here to deal with io operations