public static void BackToPreviousWithWait(Action action, ViewUnifierParams waitParameters = null) { if (waitParameters == null) { waitParameters = ViewUnifierParams.Empty; } var waitThread = new Thread(() => Start(Wait.GetType(), false, waitParameters.Params)); var formThread = new Thread(() => { waitThread.Join(); action(); BackToPrevious(); }); waitThread.SetApartmentState(ApartmentState.STA); waitThread.Start(); formThread.Start(); }
public static void StartWithWait(Type type, Action action, ViewUnifierParams formParameters = null, ViewUnifierParams waitParameters = null) { if (formParameters == null) { formParameters = ViewUnifierParams.Empty; } if (waitParameters == null) { waitParameters = ViewUnifierParams.Empty; } var waitThread = new Thread(() => Start(Wait.GetType(), waitParameters.Params)); var formThread = new Thread(() => { waitThread.Join(); action(); Start(type, formParameters.Params); }); waitThread.SetApartmentState(ApartmentState.STA); waitThread.Start(); formThread.Start(); }
public static void StartWithWait <TWindow>(Action action, ViewUnifierParams formParameters = null, ViewUnifierParams waitParameters = null) { StartWithWait(typeof(TWindow), action, formParameters); }