Пример #1
0
    protected void OnJobResultChanged(bool result)
    {
        JobResultEventArgs e = new JobResultEventArgs();

        e.result         = result;
        e.wasJobCanceled = _wasJobCanceled;
        JobResultHandler?.Invoke(this, e);
    }
    //---------------------------------------------------------------------------------------
    // Code from: http://blog.yamanyar.com/2015/05/unity-creating-c-thread-with-callback.html
    //---------------------------------------------------------------------------------------

    public void CalcCorrectionThread(object state)
    {
        object[]         array    = state as object[];
        ThreadAdapter    adapter  = array[1] as ThreadAdapter;
        JobResultHandler callback = array[2] as JobResultHandler;

        CorrectionData calcData = array[0] as CorrectionData;
        double         distance = ClosestApproach(calcData);

        //if adapter is not null; callback is also not null.
        if (adapter != null)
        {
            adapter.ExecuteOnUi(delegate {
                callback(distance, calcData);
            });
        }
    }