public static <T> T onUiSync(Func<T> func, long waitMillis, boolean cancelOnTimeOut) {
        return onUiSync(func, waitMillis, 0, cancelOnTimeOut);
    }
Synchronously
<p/>
In this you can receiver {@link Func#call()} return
<p/>
The current thread relative thread synchronization operation,
blocking the current thread,
thread for the main thread to complete
But the current thread just wait for the waitTime long.

@param func            Func Interface
@param waitMillis      wait for the main thread run milliseconds Time
@param cancelOnTimeOut on timeout the current thread cancel the runnable task
@param <T>             you can set any type to return
@return {@link T}
caprice/kit-handler/src/main/java/net/qiujuer/genius/kit/handler/Run.java