Example #1
0
    public void MathCallback(IAsyncResult iar)
    {
        MathFunctionToCall mc     = (MathFunctionToCall)iar.AsyncState;
        double             result = mc.EndInvoke(iar);

        Console.WriteLine("Function value = {0}", result);
    }
Example #2
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);
    }
Example #3
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();
    }
Example #4
0
    WaitHandle DoInvoke(MathFunctionToCall mathFunc, double value)
    {
        AsyncCallback cb = new AsyncCallback(MathCallback);

        IAsyncResult asyncResult =
            mathFunc.BeginInvoke(value, cb, mathFunc);

        return(asyncResult.AsyncWaitHandle);
    }
    public void CallMathCallback(MathFunctionToCall mathFunc,
                                 double start,
                                 double end,
                                 double increment)
    {
        AsyncCallback cb = new AsyncCallback(MathCallback);

        while (start < end)
        {
            Console.WriteLine("BeginInvoke: {0}", start);
            mathFunc.BeginInvoke(start, cb, mathFunc);
            start += increment;
        }
    }
Example #6
0
    public void CallMathCallback(MathFunctionToCall mathFunc)
    {
        WaitHandle[] waitArray = new WaitHandle[4];

        Console.WriteLine("Begin Invoke");
        waitArray[0] = DoInvoke(mathFunc, 0.1);
        waitArray[1] = DoInvoke(mathFunc, 0.5);
        waitArray[2] = DoInvoke(mathFunc, 1.0);
        waitArray[3] = DoInvoke(mathFunc, 3.14159);
        Console.WriteLine("Begin Invoke Done");

        Console.WriteLine("Waiting for completion");
        WaitHandle.WaitAll(waitArray, 10000, false);
        Console.WriteLine("Completion achieved");
    }