异步调用方法
本文关键字:方法 调用 异步 | 更新日期: 2023-09-27 18:00:23
这是我调用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;
}
}
}
但现在我需要使用delegate和begininvoke来完成此操作。。
请有人帮我做这件事,或者给我一些可以阅读的样本。
感谢
这里有一个MSDN示例,解释了如何使用异步委托。
通读一遍,但也要一步一步地读,就好像你是理解它的程序一样
异步委托编程示例