public void Frame() { TaskList.AddRange(AddTaskList); AddTaskList.Clear(); TaskList.ForEach(task => task.Update()); TaskList.RemoveAll(task => task.IsFinished()); }
private void OnLoadFileClick(object obj) { var fileDialog = new OpenFileDialog(); fileDialog.Filter = "TEXT |*.txt"; fileDialog.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory; if (fileDialog.ShowDialog().Value) { string filename = fileDialog.FileName; //MessageBox.Show("Loading file! " + filename); TaskList.Clear(); TaskList.AddRange(ioManager.LoadFile(filename)); } }
/// <summary> /// 获取任务队列 /// </summary> /// <returns></returns> public TaskList GetTask() { DataSet ds = U8.Interface.Bus.DBUtility.DbHelperSQL.Query("SELECT * FROM MES_Comm_DLLReflect WITH(NOLOCK) WHERE ClassType='op' "); TaskList mtasklist = new TaskList(); if (ds == null || ds.Tables[0].Rows.Count == 0) { return(mtasklist); } List <VoucherType> vl = new List <VoucherType>(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { vl.Add(new VoucherType() { CardNo = ds.Tables[0].Rows[i]["cvouchertype"].ToString(), VoucherName = "", // "产成品入库单", SourceCardNo = "", // "MO21", SourceVoucherNo = "", //"00001", VoucherClassDllpath = ds.Tables[0].Rows[i]["Dllpath"].ToString(), VoucherClassNamespace = ds.Tables[0].Rows[i]["Namespace"].ToString(), VoucherClass = ds.Tables[0].Rows[i]["ClassName"].ToString() }); } for (int i = 0; i < vl.Count; i++) { BaseOp tmpOp = (BaseOp)System.Reflection.Assembly.Load(vl[i].VoucherClassDllpath).CreateInstance(vl[i].VoucherClassNamespace + "." + vl[i].VoucherClass); TaskList tmpTaskList = new TaskList(); tmpTaskList = tmpOp.GetTask(); if (null == tmpTaskList || tmpTaskList.Count == 0) { } else { mtasklist.AddRange(tmpTaskList); } } return(mtasklist); }
private void AddRange() { UnitOfWork[] workItems = new UnitOfWork[20]; ActivityLog[] logItems = new ActivityLog[20]; for (int i = 0; i < workItems.Length; i++) { workItems[i] = new UnitOfWork(); logItems[i] = new ActivityLog { Id = workItems[i].Id }; } Stopwatch sw1 = Stopwatch.StartNew(); TaskList.AddRange(workItems); Activity.AddRange(logItems); sw1.Stop(); for (int i = 0; i < workItems.Length; i++) { UnitOfWork task = workItems[i]; ActivityLog log = logItems[i]; log.AddElapsed = sw1.Elapsed; Task.Factory.StartNew(task.Run) .ContinueWith(t => { Stopwatch sw2 = Stopwatch.StartNew(); bool rc = TaskList.Remove(task); int index2 = TaskList.IndexOf(task); log.RemoveElapsed = sw2.Elapsed; log.Success = rc && index2 == -1; }); } }