10
我需要下面的調用有可能在同便攜式類庫中:便攜式類庫與異步等待和的GetType()IsValueType
public class Foobar
{
void Foo()
{
var b = GetType().IsValueType; //<-- 2
}
async Task<IEnumerable<T>> Bar<T>()
where T : class, IBaz, new()
{
return await Task.Factory.StartNew(() => new List<T>(new[] //<-- 1
{
new T {Qux = Guid.NewGuid().ToString()}
}));
}
interface IBaz
{
string Qux { get; set; }
}
}
隨着設置以下的目標框架:
- 。 .NET框架4.5
- 的Sliverlight 5級
- 的Windows Phone 8
- 。網絡的Windows Store應用程序
我得到這個生成錯誤:
無法找到由「異步」修改所需的所有類型。你是針對錯誤的框架版本,還是缺少對程序集的引用?
我試圖安裝bcl但仍然得到相同的錯誤。 如果我刪除Sliverlight目標的異步工作,但然後我失去了Type類的IsValueType道具...
我沒有看到任何理由,該方法是'async'。只要刪除'async','await',就完成了。除此之外,我甚至不明白爲什麼這個操作需要在線程池線程中發生;生成一個單一的GUID是一個*非常*快速的操作。開始線程池線程會讓你失去更多的時間。 – Servy 2013-03-06 18:40:11
該示例純粹是爲了重新編譯編譯錯誤,並不能說明解決方案的結構。 – jaimie 2013-03-06 23:54:13