07 July 2009

Resultate aus Task Objekten ermitteln

Mit der Task Parallel Library hält die Klasse Task ins Framework Einzug. In der Beta 1 hat man die API zur CTP verändert, so das die Future Klasse nicht mehr vorhanden ist und diese Funktionalität über Task abgebildet wird. In einem kurzen Screencast auf Channel 9 zeige ich wie man die Klasse Task mit Rückgabewerten benutzt.

Get Microsoft Silverlight

Eine Sache ist hierbei zu beachten. In der momentanen Visual Studio 2010 Beta 1 kommt Intellisense nicht ganz klar mit der Definition der übergebenen Werte in einer Lambda wenn der Typ nicht spezifiziert ist wie im folgenden Beispiel

( previousTask ) => { int result = previousTask.Result; }

erkennt Visual Studio nicht das das Objekt Task<T> benutzt wird, statt Task und demzufolge keine Result Eigenschaft anbietet. Man kann das explizit definieren dann funktioniert Intellisense auch sauber:

( Task<int> previousTask ) => { int result = previousTask.Result; }

Ich habe im Screencast zwar von einem Bug gesprochen, nach einigen Überlegungen bin ich mir gar nicht sicher ob es einer ist. Woran soll Intellisense denn die Verwendung der Variable erkennen?

Comments

# Alex said:

Hab ich da jetzt was falsch verstanden?

previousTask enthält doch t1, und t1 hat einen Typ.

Aber das kann die IntelliSense nicht wissen, weil sie garnicht weiß dass previousTask t1 enthält, oder wie?

Aber der Compiler ermittelt dann bereits den richtigen Typ, so dass ich mit dem previousTask.Result nichts falsches anstellen kann, oder?

14 July 09 at 2:16 AM
# dparys said:

Genau

15 July 09 at 1:13 AM
New Comments to this post are disabled
Page view tracker