public void Start() { using (var store = new Store(_configuration)) { var handlers = new RequestHandlers(_configuration, store); var engine = new TaskEngine( new SocketListener(ZMQ.SocketType.REP, _configuration.Port, handlers.MapHandlers), new SocketListener(ZMQ.SocketType.PULL, _configuration.PullPort, handlers.MapHandlers), new Flusher(_configuration, store)); using (var token = new CancellationTokenSource()) using (engine) { var task1 = engine.Start(token.Token, Timeout.Infinite); if (task1.Wait(Timeout.Infinite)) { Console.WriteLine("Done without forced cancelation"); // This line shouldn't be reached } else { Console.WriteLine("\r\nRequesting to cancel..."); } token.Cancel(); } } }
static void Main(string[] args) { Mutex mutex = new Mutex(true, "DeviceExtractionService", out Boolean createdNew); if (createdNew) { LanguageManager.SwitchAll(LanguageType.Cn); PluginAdapter.Instance.Initialization(null); EngineSetup setup = new EngineSetup("isolatedTask", null); TaskEngine engine = new TaskEngine(setup); engine.Start(); Console.WriteLine("Task engin is running...:{0}", engine.IsRuning); Console.Read(); mutex.ReleaseMutex(); } }
public void Start(Role role, Account account) { Function func = new Function(); func.Name = "任务"; TaskContext context = new TaskContext(role, func); TaskEngine engine = role.TaskEngine; List <TaskBase> tasks = new List <TaskBase>(); role.Player = role.GameHelper.GetPlayer(); if (role.IsAutoLogin) { engine.AutoLogin = () => AutoLogin(role, account); } else { engine.AutoLogin = null; } if (role.IsChangeRole) { engine.ChangeRole = () => role.ChangeRole(); } else { engine.ChangeRole = null; } if (role.SelectedItemTask.Content.ToString() == "日常任务") { TaskContext tc = new TaskContext(role, new Function() { Name = "日常任务" }); tasks.Add(new RichangTask(tc)); } if (role.SelectedItemTask.Content.ToString() == "活动任务") { tasks.Add(new HuodongTask(new TaskContext(role, new Function() { Name = "活动任务" }))); } if (role.SelectedItemTask.Content.ToString() == "自动兵器") { context.Settings.StepName = "自动兵器"; tasks.Add(new SmallTool(context)); } if (role.SelectedItemTask.Content.ToString() == "自动洗练") { context.Settings.StepName = "自动洗练"; tasks.Add(new SmallTool(context)); } if (role.SelectedItemTask.Content.ToString() == "自动建筑") { context.Settings.StepName = "自动建筑"; tasks.Add(new SmallTool(context)); } if (role.SelectedItemTask.Content.ToString() == "自动主线") { tasks.Add(new AutoLevel(context)); } if (role.SelectedItemTask.Content.ToString() == "刷新装备") { context.Settings.StepName = "刷新装备"; tasks.Add(new SmallTool(context)); } if (role.SelectedItemTask.Content.ToString() == "购买装备") { context.Settings.StepName = "购买装备"; tasks.Add(new SmallTool(context)); } if (role.SelectedItemTask.Content.ToString() == "自动副本") { context.Settings.StepName = "自动副本"; tasks.Add(new SmallTool(context)); } try { engine.Start(tasks.ToArray()); } catch (Exception ex) { role.OutMessage(ex.Message); } }