0

ayn 関数を呼び出す古いコードは次のとおりです。

    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を使用してこれを行う必要があります..

誰かがこれを手伝ってくれるか、読むためのサンプルをいくつか教えてください。

ありがとう

4

1 に答える 1

2

これは、非同期デリゲートの使用方法を説明する MSDN の例です。

それを読むだけでなく、あなたがそれを理解するためのプログラムであるかのように、一歩一歩進んでください。

非同期デリゲートのプログラミング サンプル

于 2013-02-21T18:38:53.693 に答える