Reputation: 241
I have below function. How can i get correct result after ReadCompleted. Is it possible to do that? I always get null result. I'm writing on framework 4.0.
Function calling
object _result = CreateSalesOrder.GetAsyncRecords("xxxx");
console.writelen(_result); ===> null
class CreateSalesOrder
{
public wsRef_SalesOrder.Sales_Order GetAsyncRecords(string _strNo)
{
wsRef_SalesOrder.Sales_Order_PortClient _ws = GetService();
wsRef_SalesOrder.Sales_Order _rec = null;
_ws.ReadCompleted += delegate(object sender, wsRef_SalesOrder.ReadCompletedEventArgs e)
{
_rec = e.Result;
};
_ws.ReadAsync(_strNo);
if (_ws.State == System.ServiceModel.CommunicationState.Opened)
_ws.Close();
return _rec;
}
}
Upvotes: 0
Views: 44
Reputation: 16318
Your GetRecordsAsync
should be async
. Something like this:
public async Task<wsRef_SalesOrder.Sales_Order> GetAsyncRecords(string _strNo)
{
wsRef_SalesOrder.Sales_Order_PortClient _ws = GetService();
wsRef_SalesOrder.Sales_Order _rec = null;
_ws.ReadCompleted += delegate(object sender, wsRef_SalesOrder.ReadCompletedEventArgs e)
{
_rec = e.Result;
};
await _ws.ReadAsync(_strNo);
if (_ws.State == System.ServiceModel.CommunicationState.Opened)
_ws.Close();
return _rec;
}
Upvotes: 1