muszę następujące połączenia możliwe w ramach tego samego przenośnego klasy biblioteki.Portable Class Library z async czekają & 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; }
}
}
z następujących struktur docelowych określonych:
- . nET Framework 4.5
- Sliverlight 5
- Windows Phone 8
- . Net for Windows Store aplikacje
otrzymuję ten błąd kompilacji:
nie można znaleźć wszystkie rodzaje wymaganych przez „asynchroniczny” modyfikatora. Czy kierujesz się do niewłaściwej wersji frameworku lub brakuje odniesienia do zespołu?
Próbowałem zainstalować bcl, ale nadal otrzymuję ten sam błąd. A jeśli usunę cel Sliverlight, async działa, ale wtedy stracę propozycję IsValueType z klasy Type ...
Nie widzę żadnego powodu, aby ta metoda była "asynchroniczna". Po prostu usuń 'async',' await', i gotowe. Poza tym nie rozumiem nawet, dlaczego ta operacja musi się zdarzyć w wątku puli wątków; Generowanie pojedynczego identyfikatora GUID jest * bardzo * szybką operacją. Stracisz * lot * więcej czasu, rozpoczynając wątek puli wątków. – Servy
Ten przykład służy wyłącznie do odtworzenia błędu kompilacji i nie jest wskazówką, jak rozwiązanie ma strukturę. – jaimie