Actually I am quite pleased with the way AsyncRead works and the caching is transparent to me so that doesn't matter. It never entered my mind to use AsyncRead until you made post #6.