locked
HPC并行计算函数是不是没有办法传递数组或自定义类参数? RRS feed

  • 问题

  • 比如例程AsianOptions里面PriceAsianOptions函数的原型变为 

    public double PriceAsianOptions(ClassData data);
    

    这样写因为名空间的问题没有办法编译通过。

    或者

    public double PriceAsianOptions(double []data);
    

     

    这样写提交到服务器上以后显示运行时错误,SendRequest()出现套接字错误。

    请问如何传递数组或自定义类?


    2011年10月22日 9:51

答案

  • 传递类的话应该要用DataContract和DataMember吧,比如:
    [DataContract]
    public class DataClass
    {
    	[DataMember]
    	public int Member1;
    	
    	public int Member2;
    }
    

    被标记为DataContract的类可以被序列化,被标记为DataMember的成员是数据成员,会被序列化,没有标记DataMember的成员不会被序列化。
    也就是说,服务端能够接收到Member1的值,但没有Member2的值。
    至于数组嘛,应该是能直接序列化的,出现套接字错误不一定是数组不能被序列化的原因。
    以上观点没有经过验证,最好参考微软关于DataContract和DataMember的帮助文档。
    2011年10月22日 10:01