private void LoadAllModuleConfig() { MultiTaskingRunner runner = new MultiTaskingRunner(); ModuleConfigs = new Dictionary <string, UDMsOfSchool>(); foreach (ConnectionHelper conn in Connections) { string name = Program.GlobalSchoolCache[conn.UID].Title; runner.AddTask(string.Format("{0}({1})", name, conn.UID), (x) => { LoadModuleConfig(x as ConnectionHelper); }, conn, new System.Threading.CancellationTokenSource()); } runner.ExecuteTasks(); }
private void Search(Action <List <string>, string, object> patternMatcher) { MultiTaskingRunner runner = new MultiTaskingRunner(); List <string> matchs = new List <string>(); string pattern = txtPattern.Text; foreach (string uid in Program.MainPanel.SelectedSource) { string name = Program.GlobalSchoolCache[uid].Title; ConnectionHelper ch = ConnectionHelper.GetConnection(uid); runner.AddTask(string.Format("{0}({1})", name, uid), (x) => { patternMatcher(matchs, pattern, x); }, new object[] { uid, ch }, new CancellationTokenSource()); } runner.ExecuteTasks(); Program.MainPanel.AddToTemp(matchs); DialogResult = DialogResult.OK; }
private void btnCheckUpdate_Click(object sender, EventArgs e) { IEnumerable <UDMGridRow> udms = GetSelectedUDM(); MultiTaskingRunner runner = new MultiTaskingRunner(); foreach (UDMGridRow udm in udms) { runner.AddTask(udm.Name, x => { UDMGridRow s = x as UDMGridRow; CheckUDMNewVersion(s); }, udm, new System.Threading.CancellationTokenSource()); } runner.AllTaskCompleted += delegate { }; runner.ExecuteTasks(); }
private void btnDelete_Click(object sender, EventArgs e) { if (dgvModules.SelectedRows.Count <= 0) { return; } DialogResult dr = MessageBox.Show("確定要刪除選擇的模組?", "ischool", MessageBoxButtons.YesNo); if (dr == System.Windows.Forms.DialogResult.No) { return; } MultiTaskingRunner runner = new MultiTaskingRunner(); ModuleRow mr = dgvModules.SelectedRows[0].DataBoundItem as ModuleRow; string modUrl = mr.Url; foreach (ConnectionHelper conn in Connections) { string name = Program.GlobalSchoolCache[conn.UID].Title; runner.AddTask(string.Format("{0}({1})", name, conn.UID), (x) => { object[] obj = x as object[]; ConnectionHelper c = obj[0] as ConnectionHelper; string xurl = (string)obj[1]; RemoveDesktopModule(c, xurl); }, new object[] { conn, modUrl }, new System.Threading.CancellationTokenSource()); } runner.ExecuteTasks(); try { InitConnections(); LoadAllModuleConfig(); GroupByToDataGrid(); } catch { Close(); } //爆了就關吧。 }