Exemple #1
0
    public static EventloopEntry RunBlockingPrim <A>(Fun0 <A> blockingAction, Fun2 <Exception, A, Unit> onSuccess)
    {
        EventloopEntry entry = GetEventloopEntry();

        ThreadPool.QueueUserWorkItem((object info) => {
            Exception exception = null;
            A result            = default(A);
            try {
                result = blockingAction.Call();
            }
            catch (Exception exn) {
                exception = exn;
            }
            entry.Post(() => { onSuccess.Call(exception, result); });
        });
        return(entry);
    }