2011-11-20 14 views
0

我在WCF服务上运行一个小测试,因此我加载了1000个帐户,并且每个帐户都想调用一个返回对象的方法。我在这里错过了一些东西,因为runAccount方法永远不会被调用。在PLINQ语句中执行方法调用

private static void RunTest() 
    { 
     var accounts = CsvHelper.ParseCsv(@"Data\acccounts.csv"); 

     GeneralHelper.MemberData = (from a in accounts.AsParallel() 
            select runAccount(a)) as IList<MemberFormDataContract>; //PLINQ 
    } 


    private static MemberFormDataContract runAccount(Account acct) 
    { 
     IAccountMasterService accountMasterService = new AccountMasterServiceClient(); 
     MemberFormDataContract memberFormDataContract = accountMasterService.FindMemberFormByAccountId(acct.Id); 
     return memberFormDataContract; 
    } 

的这里的一点是,我要运行的号召列表中的每个帐户,并填充一个辅助类与被定时呼叫,寻找高/低和平均的结果。问题在于实际的服务呼叫从来没有做过,这有助于号码看起来很棒,但完全是虚假的。

回答

3

ToList()代替as IList<MemberFormDataContract>select语句的执行被推迟到您强制它被(例如)ToList()执行。

+0

嗯,这证明了我在周日下午冲最简单的东西只是浪费时间。谢谢。 – BryanGrimes

+1

分配给GeneralHelper.MemberData的返回值可能为空。 也请记住,查询将仅在您使用来自GeneralHelper.MemberData的数据时执行。在调试器中跳过该行后,不要期望它执行。 –

+0

大声笑,更糟的是,这是周日晚上。 –

相关问题