static unsafe NotifierHandle()
        {
            NativeCommon.Initialize();

            NativeMethods.ShouldHandleCallback       shouldHandle       = Notifier.ShouldHandle;
            NativeMethods.EnqueueCalculationCallback enqueueCalculation = Notifier.EnqueueCalculation;
            NativeMethods.StartCallback start = Notifier.OnStarted;
            NotifierNotificationHandle.CalculationCompleteCallback calculationComplete = Notifier.OnCalculationCompleted;

            GCHandle.Alloc(shouldHandle);
            GCHandle.Alloc(enqueueCalculation);
            GCHandle.Alloc(start);
            GCHandle.Alloc(calculationComplete);

            NativeMethods.install_callbacks(shouldHandle, enqueueCalculation, start, calculationComplete);
        }
 public static extern void install_callbacks(
     ShouldHandleCallback should_handle_callback,
     EnqueueCalculationCallback enqueue_calculation_callback,
     StartCallback start_callback,
     NotifierNotificationHandle.CalculationCompleteCallback calculation_complete_callback);