Sample code attached to Intensive Cache Miss article on my blog.
This code tries to show correct path of implementation for data retrieval process. The goal is to do not duplicate logic multiple times, but just to use single code to handle data retrieve procedure.
NOTE SingleKeyResolver disposable pattern implementation have to be added. The problem, to resolve for now is race condition between taking results and disposing tasks.