namespace Speckle.Connectors.Common.Threading; public static class ThreadContextExtensions { public static Task RunOnMain(this IThreadContext threadContext, Action action) => threadContext.RunOnThread(action, true); public static Task RunOnWorker(this IThreadContext threadContext, Action action) => threadContext.RunOnThread(action, false); public static Task RunOnMain(this IThreadContext threadContext, Func action) => threadContext.RunOnThread(action, true); public static Task RunOnWorker(this IThreadContext threadContext, Func action) => threadContext.RunOnThread(action, false); public static Task RunOnMainAsync(this IThreadContext threadContext, Func action) => threadContext.RunOnThreadAsync(action, true); public static Task RunOnWorkerAsync(this IThreadContext threadContext, Func action) => threadContext.RunOnThreadAsync(action, false); public static Task RunOnMainAsync(this IThreadContext threadContext, Func> action) => threadContext.RunOnThreadAsync(action, true); public static Task RunOnWorkerAsync(this IThreadContext threadContext, Func> action) => threadContext.RunOnThreadAsync(action, false); }