示例#1
0
    WaitHandle DoInvoke(MathFunctionToCall mathFunc, double value)
    {
        AsyncCallTracker callTracker = new AsyncCallTracker(mathFunc);

        AsyncCallback cb          = new AsyncCallback(MathCallback);
        IAsyncResult  asyncResult = mathFunc.BeginInvoke(value, cb, callTracker);

        return(callTracker.DoneEvent);
    }
示例#2
0
    public void MathCallback(IAsyncResult iar)
    {
        AsyncCallTracker   callTracker = (AsyncCallTracker)iar.AsyncState;
        MathFunctionToCall func        = (MathFunctionToCall)callTracker.Function;
        double             result      = func.EndInvoke(iar);

        Console.WriteLine("Function value = {0}", result);
        callTracker.DoneEvent.Set();
    }