0
这里是我的旧代码来调用一个函数ASYN:异步调用一个方法
public class Caller {
public void Calculate(CalcParameters calcParameters, string sourceApp) {
AsyncCaller caller = new AsyncCaller(_username, _password, new Token());
caller.Calculated += new CalculatedHandler(OnCalculated);
caller.calculate(sourceApp, calcParameters);
}
protected virtual void OnCalculated(object sender, CalculatedEventArgs e) {
if (OnCalculatedEvent != null) OnCalculatedEvent(e);
}
public void calculate(string calcID, WebService.CalcParameters calcParams) {
calculate(0, calcID, calcParams);
}
public void calculate(long callID, string calcID, WebService.CalcParameters calcParams) {
try {
lock(this) {
Worker wsWorker = MakeCalculateWorker(callID, calcID, new OnCalculatedHandler(OnCalculated), calcParams);
Thread wsThread = new Thread(new ThreadStart(wsWorker.calculate));
wsThread.IsBackground = true;
wsThread.Start();
}
} catch (Exception ex) {
_log.WriteError(
Assembly.GetExecutingAssembly().GetName().Name,
this.GetType().Name,
MethodBase.GetCurrentMethod().Name,
_username,
ex.Message);
throw ex;
}
}
}
但现在我需要做到这一点使用委托和的BeginInvoke ..
请有人可以帮我这个或给我一些样品阅读。
感谢
那么你有没有试图用'BeginInvoke'来解决这个问题?你知道如何定义委托的实例吗?你无法调用'BeginInvoke'吗?您的解决方案中是否出现错误?你究竟需要我们的帮助? – Servy 2013-02-21 18:21:18
我创建了一个委托,但不知道在哪里以及如何使用该委托并调用begininvoke – user175084 2013-02-21 18:22:44
该委托有一个名为'BeginInvoke'的方法。调用该方法。它有一个参数,用于在方法结束时调用回调。如果你有一个,你可以把它放在那里,如果你不这样做,你可以传入一个无操作方法和一个参数为null的参数。恭喜你完成了。 – Servy 2013-02-21 18:24:20