using System; using System.Collections.Concurrent; namespace OS.Common.Modules.AsynModule { /// /// 异步 /// public static class AsynUtil { private static readonly ConcurrentDictionary _asynDirs = new ConcurrentDictionary();//Dictionary(); /// /// 通过模块名称获取异步处理模块实例 /// /// /// public static IAsynBlock GetAsynBlock(string asynModule) { if (string.IsNullOrEmpty(asynModule)) asynModule = ModuleNames.Default; if (_asynDirs.ContainsKey(asynModule)) return _asynDirs[asynModule]; var asyn = OsConfig.Provider.GetAsynBlock(asynModule) ?? new AsynBlock(); _asynDirs.TryAdd(asynModule,asyn); return asyn; } /// /// 调用异步方法 /// /// /// /// /// 异步模块名称 /// public static bool Asyn(Action asynAction, T t,string moduleName=ModuleNames.Default) { return GetAsynBlock(moduleName).Asyn(asynAction, t); } } }