如何使用上一个任务的结果继续使用另一个函数

时间:2017-01-20 13:51:05

标签: c#

我有以下函数,具有不同的返回类型,我想链接:

  1. ChrDetailedDataResponse GetChrNumberData(ChrDetailedData data)
  2. ChrDetailedData SaveData(ChrDetailedDataResponse data)
  3. void UpdateChrNumberLastRetrieved(int chrNumber, bool dataDownloaded)
  4. 到目前为止,我已经提出了这个问题:

    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不存在。

    有什么建议吗?

0 个答案:

没有答案