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