我有以下函数,具有不同的返回类型,我想链接:
ChrDetailedDataResponse GetChrNumberData(ChrDetailedData data)
ChrDetailedData SaveData(ChrDetailedDataResponse data)
void UpdateChrNumberLastRetrieved(int chrNumber, bool dataDownloaded)
到目前为止,我已经提出了这个问题:
var firstTask = Task.Factory.StartNew(() => GetChrNumberData(detailedData));
var secondTask = firstTask.ContinueWith((t) =>
{
if (!string.IsNullOrEmpty(t.Result.ResultSerialized))
{
SaveData(t.Result, detailedData);
}
}, TaskContinuationOptions.OnlyOnRanToCompletion);
firstTask.ContinueWith((t) => HandleTaskException(t, detailedData), TaskContinuationOptions.OnlyOnFaulted);
var thirdTask = secondTask.ContinueWith((t) =>
{
UpdateChrNumberLastRetrieved(t.Result.ChrNumber, true);
}, TaskContinuationOptions.OnlyOnRanToCompletion);
secondTask.ContinueWith((t) => HandleTaskException(t, detailedData), TaskContinuationOptions.OnlyOnFaulted);
firstTask.Start();
编译器不接受:UpdateChrNumberLastRetrieved(t.Result.ChrNumber, true);
因为t.Result
不存在。
有什么建议吗?