.net 如何调用异步方法直到得到成功响应?
我正在通过委托进行异步方法调用。指向函数的委托是无效函数。我如何知道异步函数已经成功执行,如果没有,我将再次调用该函数,直到得到成功响应。这是我的密码-.net 如何调用异步方法直到得到成功响应?,.net,asynchronous,delegates,.net,Asynchronous,Delegates,我正在通过委托进行异步方法调用。指向函数的委托是无效函数。我如何知道异步函数已经成功执行,如果没有,我将再次调用该函数,直到得到成功响应。这是我的密码- BillService bs = new BillService(); PayAdminCommisionDelegate payCom = new PayAdminCommisionDelegate(bs.PaySiteAdminByOrderNo); payCom.BeginInvoke(OrderNo,null,null); using
BillService bs = new BillService();
PayAdminCommisionDelegate payCom = new PayAdminCommisionDelegate(bs.PaySiteAdminByOrderNo);
payCom.BeginInvoke(OrderNo,null,null);
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace FewAsyncCalls
{
class Program
{
static void Main(string[] args)
{
var d = new Action(LongErrorProneMethod);
AsyncCallback callback = null;
callback = new AsyncCallback(r =>
{
try
{
d.EndInvoke(r);
}
catch
{
Console.WriteLine("Async call failed");
d.BeginInvoke(callback, null);
}
});
d.BeginInvoke(callback, null);
Console.ReadLine();
}
private static void LongErrorProneMethod()
{
Console.WriteLine("Running long error prone method.");
Thread.Sleep(1000);
if (new Random().Next(100) > 10)
throw new InvalidOperationException();
else
Console.WriteLine("Async call successful");
}
}
}