任务并行库继续

时间:2014-04-01 13:15:58

标签: c# task-parallel-library

好的,所以我创建了一个使用soap服务登录DataProvider类的方法。登录将进行三次单独的soap调用,并在成功登录时将所有响应组合到ViewController的单个回调中。我想要使​​用Task并行库来实现这一目标(但此时它只会引起头疼)。我还要求在" LoginAsync"中出现任何异常。方法被传递回视图控制器类以进行日志记录。

分钟的代码(不是编译)是:

public void LoginAsync(string username, string password, Action<int,SystemConfig,string> callback)
{
    Task<int> task = Task<int>.Factory.StartNew(() =>
    {
        int result = _service.Login(username, password);
        if (result == 1)
        {
                _header.AuthenticationToken = _service.GenerateToken();
                _systemConfig = _service.GetSystemConfig(_cultureCode);
        }
        return result;
    }).ContinueWith((Task<int> antecedent) =>
    {
            callback(antecedent.Result, _systemConfig, _header.AuthenticationToken);
    }, CancellationToken.None, TaskScheduler.FromCurrentSynchronizationContext(), TaskContinuationOptions.OnlyOnRanToCompletion);
    }

无论我尝试多少种不同的方式,我似乎无法让它工作,因为我可以满足我的所有要求。在那一刻,编译错误就是抱怨先行参数。

0 个答案:

没有答案