public static void AddTask(string _taskName, ITaskPlugin _iplugin) { if (!_taskLib.ContainsKey(_taskName)) { _taskLib.Add(_taskName, _iplugin); } }
private void ITaskPlugin_Click(object sender, RoutedEventArgs e) { MenuItem item = sender as MenuItem; ITaskPlugin plugin = item.Tag as ITaskPlugin; if (MessageBox.Show(plugin.info, plugin.name, MessageBoxButton.YesNo) == MessageBoxResult.Yes) { TaskQueue.AddImportantTask(plugin.GetTask()); } }
public static void AddByTaskplugin(ITaskPlugin _taskplugin) { TaskListItem _item = new TaskListItem(); _item.TaskName = _taskplugin.Name; _item.TaskCheckType = _taskplugin.CheckType; _item.State = 0; _item.LastResult = 9; _item.LastErrorMsg = ""; _item.LastFinishedTime = DateTime.MinValue; _item.NextStartTime = DateTime.Now; _item.TaskPlugin = _taskplugin; Add(_item); }
/// <summary> /// 任务管理器 /// </summary> /// <param name="application"></param> /// <param name="_rwid">任务ID</param> /// <param name="_lb">任务类别</param> /// <param name="_ml">任务命令</param> public static void RunTask(string _rwid, string _lb, string _ml) { string _pluginName = _lb.Trim(); ITaskPlugin _plugin = TaskLib.GetService(_pluginName); if (_plugin == null) { throw new Exception(string.Format("任务{0}接口未注册!", _pluginName)); } try { Task_Base _task = _plugin.GetTaskObject(_rwid, _ml) as Task_Base; Thread t = new Thread(new ThreadStart(_task.ThreadProc)); t.Start(); } catch (Exception ex) { OralceLogWriter.WriteSystemLog(ex.Message, "ERROR"); } }
private void AddNewTask(ITaskPlugin _plugin) { application.AddTask(_plugin.Name, _plugin as ITaskPlugin); }
public MainWindow() { InitializeComponent(); Title = Tool.GetConfig("NAME"); void Log(string log) { Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, new Action(() => { LogTextBox.Text += log + "\n"; UpdateLayout(); LogTextBox.ScrollToVerticalOffset(LogTextBox.ActualHeight + LogTextBox.VerticalOffset); })); } Tool.Log = Log; List <string> pluginpath = FindPlugin(); foreach (string filename in pluginpath) { try { //获取文件名 string asmfile = filename; string asmname = Path.GetFileNameWithoutExtension(asmfile); if (asmname != string.Empty) { // 利用反射,构造DLL文件的实例 Assembly asm = Assembly.LoadFile(asmfile); //利用反射,从程序集(DLL)中,提取类,并把此类实例化 Type[] t = asm.GetExportedTypes(); foreach (Type type in t) { if (type.GetInterface("ITaskPlugin") != null) { ITaskPlugin plugin = (ITaskPlugin)Activator.CreateInstance(type); MenuItem item = new MenuItem(); item.Header = plugin.name; item.Tag = plugin; item.Click += ITaskPlugin_Click; TaskMenu.Items.Add(item); } else if (type.GetInterface("ISchedulePlugin") != null) { ISchedulePlugin plugin = (ISchedulePlugin)Activator.CreateInstance(type); MenuItem item = new MenuItem(); item.Header = plugin.name; item.Tag = plugin; item.Click += ISchedulePlugin_Click; ScheduleMenu.Items.Add(item); } } } } catch (Exception ex) { Console.Write(ex.Message); } } string info = Tool.GetInfo(); if (info != "") { MessageBox.Show(info); } }
public bool AddTask(string _taskName, ITaskPlugin _taskPlugin) { TaskList.AddByTaskplugin(_taskPlugin); WriteMessage(string.Format("任务[{0}]加载成功!", _taskName), EventLogEntryType.Information); return(true); }
public bool AddTask(string _taskName, ITaskPlugin _taskPlugin) { throw new NotImplementedException(); }
public bool AddTask(string _plugInName, ITaskPlugin _taskPlugin) { TaskLib.AddTask(_plugInName, _taskPlugin); WriteMessage(string.Format("[ {0} ]的任务注册成功!", _taskPlugin.Description)); return(true); }