Task<TResult> (. MSDN - TaskFactory.StartNew-Methode (Func, Object). <TResult> - .
, , , . async .
Calculate(), double double, Validate(), . :
private async Task CalculateAsync()
{
CustomArgsObject customParameterObject = new CustomArgsObject()
{
Value1 = 500,
Value2 = 300
};
Task<double> returnTaskObject = await Task<double>.Factory.StartNew(
(paramsHoldingValues) => Calculate(paramsHoldingValues as CustomArgsObject),
customParameterObject);
double result = returnTaskObject.Result;
Validate(result);
}
private double Calculate(CustomArgsObject values)
{
return values.Value1 + values.Value2;
}
private bool Validate(double value)
{
return (value < 1000);
}
await (, CalculateAsync()), . await CalculateAsync() , , . CalculateAsync() .
await - .
Task<TResult> ( <TResult> ) Result, <TResult>.