Sto cercando di ottenere comprensione di .NET 4.0 + Task Parallel Library concetti ...Perché la proprietà Risultato dell'attività non è disponibile per Attività non generica (C# 4.0+)?
Nel seguente frammento di codice C# 4.0:
Task t = Task.Factory.StartNew(() =>
{
Console.WriteLine("I am the task");
return "res1";
});
perché il compilatore non lo fa (e run-time sia) produce alcun errore se il ritorno non può essere usato se Task generico usato al posto:
Task<string> t = Task.Factory.StartNew(() =>
{
Console.WriteLine("I am the task");
return "res1";
});
O (oggetto restituito) può essere utilizzato?
Ho capito correttamente che <string>
in Task<string>
è necessario solo per rilevare o assicurare il tipo di ritorno (oggetto ed) o di t.Result
?
O ci sono altre cose nascoste da me, eccetto questo?
Perché questo tipo non può essere determinato dal tipo di oggetto restituito?
I.e. perché la proprietà Result di un'attività non è disponibile per attività non generiche?
Sì, l'ho visto ma non riuscivo a capire perché l'attività non generica non può avere la proprietà 'Result' – Fulproof
@Fulproof È una cosa concettuale. 'Task' è più o meno concettualmente equivalente al tipo di ritorno' void' in async/Task world, mentre 'Task' è equivalente al tipo di ritorno 'T'. Ora, dato un metodo 'void Foo()' non proverei a fare 'var result = Foo();', vuoi? :) –
Perché, quindi, il ritorno dall'attività non generica "attività" non viene compromesso dal compilatore come un errore o addirittura un avviso? – Fulproof