1

以下の点についてご協力いただければ幸いです。

CompensationPlanReturnReturn オブジェクトの配列を返す WebService メソッドがあります。メソッドは次のように呼び出されます。

//This is the object I need to instanciate  because it contains the method I wanna call
CompensationPlan_Out_SyncService test = new CompensationPlan_Out_SyncService();
//This is the method that is supposed to return me an array of CompensationPlanReturnReturn objects
//The data.ToArray() is the parameter the method need, then I pass the method that I wanna run when the method finishes and I dont know what to pass as the final parameter
test.BeginCompensationPlan_Out_Sync(data.ToArray(), new AsyncCallback(complete), null)

//The method description is:
public System.IAsyncResult BeginCompensationPlan_Out_Sync(CompensationPlanDataCompensationPlan[] CompensationPlanRequest, System.AsyncCallback callback, object asyncState)

//On this method I'd like to access to the resuls (the array of CompensationPlanReturnReturn) but I dont know how
private void complete(IAsyncResult result)
    {            
        lblStatus.Text = "Complete";
    }
4

3 に答える 3

4

非同期操作の結果を返すを呼び出すtest.EndCompensationPlan_Out_Sync(result)か、エラーが発生した場合は例外をスローする必要があります。

于 2013-08-15T14:54:31.607 に答える
2

非同期メソッドは、 と の 2 つのサブメソッドに分類されBeginますEnd

EndCompensationPlan_Out_Syncメソッドによって返される実際の結果を取得するには、呼び出す必要があります-

private void complete(IAsyncResult result)
{            
    var actualResult = test.EndCompensationPlan_Out_Sync(result);
    lblStatus.Text = "Complete";
}
于 2013-08-15T14:55:35.703 に答える
0

AsyncState-Property を使用して、指定されたタイプにキャストしてみてください。

このような:

cSACommand = (SACommand)Result.AsyncState;
于 2013-08-15T14:54:22.977 に答える