queue<Ice::AsyncResultPtr> retArray; for (int i = 0; i < INVOKE_COUNT; i++) { try { retArray.push(rpcTransPrx->begin_RTransCall(strServiceName, strInstanceKey, strOptionName , strOptionData, iOptionData)); }catch (const Ice::Exception& ex) { cout << ex << endl; } } for (int i = 0; i < INVOKE_COUNT; i++) { Ice::AsyncResultPtr pRet; pRet = retArray.front(); retArray.pop(); pRet->waitForCompleted(); try { rpcTransPrx->end_RTransCall(strResultData, pRet); cout << "Aysn endl:" << strResultData << endl; }catch (const Ice::Exception& ex) { cout << ex << endl; } } CMyCallbackPtr poTestCallBack = new CMyCallback(cb); Ice::AsyncResultPtr pRet = rpcTransPrx->begin_RTransCall(strServerName, strInstanceKey, strOptionName, strOptionData, iOptionData, ::GDM::newCallback_RpcTrans_RTransCall(poTestCallBack, &CMyCallback::ice_response, &CMyCallback::ice_exception)); interface RpcTrans { ["amd"] void RTransCall(string strServiceName, string strInstanceKey, string strOptionName, string strOptionData, int iOptionData, out string strResult); }; interface InstanceServer { ["ami"] void RDispatchCall( string strOptionName, string strOptionData, int iOptionData, out string strResult); };