using CommonLang.Concurrent; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ZeusServerNode { public class SingleThreadTaskExecutor : IDisposable { private SingleThreadExecutor executor = new SingleThreadExecutor(); public void Dispose() { executor.Shutdown(); } public Task<TResult> Run<TResult>(Func<TResult> function) { Task<TResult> ret = new Task<TResult>(function); executor.Execute(() => { ret.RunSynchronously(); }); return ret; } } }