【发布时间】:2011-12-20 13:04:25
【问题描述】:
我有一个负责检索资源的类,它还缓存它们以供快速访问。 该类公开了一个用于检索资源的异步方法:
public Task<object> GetResourceAsync(string resourceName)
{
return Task.Factory.StartNew<object>(() =>
{
// look in cache
// if not found, get from disk
// return resource
});
}
客户端代码如下所示:
myResourceProvider.GetResourceAsync("myResource")
.ContinueWith<object>(t => Console.WriteLine("Got resource " + t.Result.ToString()));
这样,总是使用后台线程。但是,如果在缓存中找到对象,我不希望代码异步运行。 如果在缓存中找到,我想立即返回资源,而不必使用另一个线程。
谢谢。
【问题讨论】:
标签: c# .net multithreading .net-4.0 task-parallel-library