/// <summary> /// Método que controla el fin de la ejecución de un proceso en segundo plano /// </summary> /// <param name="stickyId">Identificador del plan de ejecución</param> /// <param name="e">Argumentos del evento de fin de ejecución</param> /// <param name="work">Proceso en segundo plano</param> private static void EndWorkExecution(long stickyId, DoWorkEventArgs e, BackgroundWorker work = null) { Hal.Results[stickyId] = e.Result; //Comprobamos si el trabajo es periodico if (!StickyUtils.GetStickyProp <bool>(e.Argument, "IsPeriodic")) { //Finalizamos la ejecución del trabajo RemoveWork(stickyId); if (work != null) { lock (Hal.KingHill) { Hal.KingHill.ReleasePriority(work.GetHashCode().ToString(CultureInfo.InvariantCulture)); } } } else { //Pausamos el trabajo y lo volvemos a ejecutar de nuevo Thread.Sleep(StickyUtils.GetStickyProp <int>(e.Argument, "MillisecondsDelay")); var newWork = CreateWork(); newWork.RunWorkerAsync(e.Argument); } }
public void CheckDBConnectionVisualAsync(string connectionString, bool isDbConnectionOkMessageRequired = true, Window owner = null) { this.isDbConnectionOkMessageRequired = isDbConnectionOkMessageRequired; //SqlCommand command = new SqlCommand(); splashScreen = new DBConnectionSplashScreen(this.cancelCheckDbConnection); splashScreen.WindowStartupLocation = WindowStartupLocation.CenterScreen; splashScreen.Topmost = true; if (owner != null) { splashScreen.Owner = owner; splashScreen.ShowInTaskbar = false; splashScreen.WindowStartupLocation = WindowStartupLocation.CenterOwner; } splashScreen.Show(); Debug.WriteLine("backgroundWorker(" + backgroundWorker.GetHashCode() + ").RunWorkerAsync(command)"); this.backgroundWorker.RunWorkerAsync(connectionString); }
/// <summary> /// Instance un nuevo Token con los datos asociados al proceso en /// segundo plano pasados por parámetros /// </summary> /// <param name="stickyId">Identificador del plan de ejecución</param> /// <param name="data">Datos asociados al plan de ejecución</param> /// <param name="worker">Proceso en segundo plano</param> public Token(long stickyId, T data, BackgroundWorker worker) { StickyId = stickyId; Data = data; Worker = worker; _hash = worker.GetHashCode().ToString(CultureInfo.InvariantCulture); Hal.KingHill.KingChanged += AdjustPriorityKing; if (_hash.Equals(Hal.KingHill.Hash)) { Thread.CurrentThread.Priority = ThreadPriority.BelowNormal; } }
private void Window_Loaded(object sender, RoutedEventArgs e) { worker.RunWorkerAsync(); md.AddWorker(worker.GetHashCode(), "初始化任务", 0); }
private async void SimpleButton5_Click(object sender, EventArgs e) { int[] selectedRows = GridView_Tasks.GetSelectedRows(); foreach (int rowHandle in selectedRows) { if (rowHandle >= 0) { String ID = GridView_Tasks.GetRowCellValue(rowHandle, "PID").ToString(); String status = GridView_Tasks.GetRowCellValue(rowHandle, "Task_Status").ToString(); String Scraping_Account = GridView_Tasks.GetRowCellValue(rowHandle, "Scraping_Account").ToString(); String Scraped_Board = GridView_Tasks.GetRowCellValue(rowHandle, "Scraped_Board").ToString(); String Posting_Board = GridView_Tasks.GetRowCellValue(rowHandle, "Posting_Board").ToString(); String acctoken = GridView_Tasks.GetRowCellValue(rowHandle, "acctoken").ToString(); String accPassword = GridView_Tasks.GetRowCellValue(rowHandle, "accPassword").ToString(); String t1delay = GridView_Tasks.GetRowCellValue(rowHandle, "t1delay").ToString(); String t2delay = GridView_Tasks.GetRowCellValue(rowHandle, "t2delay").ToString(); String PostingaccountUsername = GridView_Tasks.GetRowCellValue(rowHandle, "PostingAccountUsername").ToString(); if (status.Contains(TaskManger.TaskManagerStatus.Paused) || status.Contains(TaskManger.TaskManagerStatus.Failed)) { BackgroundWorker t = new BackgroundWorker(); t.WorkerSupportsCancellation = true; string pid = t.GetHashCode().ToString(); t.DoWork += new DoWorkEventHandler(delegate(object o, DoWorkEventArgs a) { PinObject pinObject = new PinObject(pid, Scraping_Account, accPassword, acctoken, Posting_Board, int.Parse(t1delay), int.Parse(t2delay), PostingaccountUsername ); pinObject.Resume(); }); DataRow dxr = DT_TaskManger.Select("PID='" + ID + "'").FirstOrDefault(); dxr["PID"] = pid; GridView_Tasks.SetRowCellValue(rowHandle, "PID", pid); ID = pid; appHelper.SetTaskMangerDataTable_Control = DT_TaskManger; GridControl_Tasks.Focus(); GridControl_Tasks.Refresh(); TaskList.Add(t); //t.RunWorkerAsync(); TaskManger.Running_Process += t.GetHashCode().ToString(); foreach (BackgroundWorker ts in TaskList) { if (ts.GetHashCode().ToString() == ID) { TaskManger.Running_Process += ts.GetHashCode().ToString() + " "; ts.RunWorkerAsync(); GridView_Tasks.SetRowCellValue(rowHandle, "Task_Status", TaskManagerStatus.Running); } } return; } foreach (BackgroundWorker t in TaskList) { if (t.GetHashCode().ToString() == ID) { TaskManger.Running_Process = TaskManger.Running_Process.Replace(t.GetHashCode().ToString(), ""); simpleButton5.Enabled = false; } } } } appHelper.SetTaskMangerDataTable_Control = DT_TaskManger; }
private async void SimpleButton9_Click(object sender, EventArgs e) { txt_BoardURL.Text = txt_BoardURL.Text.ToLower().Replace("https://www.pinterest.com/", "").Replace("http://www.pinterest.com/", "").Replace("pinterest.com/", ""); if (txt_BoardURL.Text.EndsWith("/")) { txt_BoardURL.Text = txt_BoardURL.Text.TrimEnd(txt_BoardURL.Text[txt_BoardURL.Text.Length - 1]); } if (Lookup_ScrapingAccount.GetSelectedDataRow() == null || Lookup_PostingAccount.GetSelectedDataRow() == null) { MessageBox.Show("Please Select The scraping Account And The Posting Accoint! ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (Combo_CurentBoard.SelectedItem == null) { MessageBox.Show("Please Select an Board ! ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } dynamic ScrapingAccount = Lookup_ScrapingAccount.GetSelectedDataRow(); dynamic PostingAccount = Lookup_PostingAccount.GetSelectedDataRow(); if (ScrapingAccount.Row.ItemArray[1].ToString() == "") { MessageBox.Show("You Must Enter The Password of Scraping Account", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } BackgroundWorker t = new BackgroundWorker(); t.WorkerSupportsCancellation = true; string pid = t.GetHashCode().ToString(); t.DoWork += new DoWorkEventHandler(delegate(object o, DoWorkEventArgs a) { PinObject pinObject = new PinObject(pid, ScrapingAccount.Row.ItemArray[0].ToString(), ScrapingAccount.Row.ItemArray[1].ToString(), PostingAccount.Row.ItemArray[3].ToString(), Combo_CurentBoard.SelectedItem.ToString(), ((int)num1.Value), ((int)num2.Value), PostingAccount.Row.ItemArray[0].ToString()); pinObject.ScrapBoard(txt_BoardURL.Text, ((int)ScrapBoardLimit.Value)); }); TaskList.Add(t); //t.RunWorkerAsync(); TaskManger.Running_Process += t.GetHashCode().ToString(); FILEWriter fILEWriter = new FILEWriter(); setscad(); DT_TaskManger.Rows.Add( ScrapingAccount.Row.ItemArray[0].ToString(), PostingAccount.Row.ItemArray[0].ToString(), TaskManger.TaskMangerProcess.ScrapBoard + "_" + txt_keyword.Text, txt_BoardURL.Text, Combo_CurentBoard.SelectedItem.ToString(), Scad, "0", "0", "0", TaskManger.TaskManagerStatus.Ready, DateTime.Now.ToString(), "", t.GetHashCode().ToString(), txt_forcechangeurl.Text, "", PostingAccount.Row.ItemArray[3].ToString(), ScrapingAccount.Row.ItemArray[1].ToString(), num1.Value, num2.Value, ScrapBoardLimit.Value, PostingAccount.Row.ItemArray[0].ToString()); Lookup_ScrapingAccount.Enabled = true; }
public void StartProcess(BackgroundWorker worker) { StartProcess(worker.GetHashCode().ToString()); }
public void RemoveProcess(BackgroundWorker worker) { RemoveProcess(worker.GetHashCode().ToString()); }
public bool IsProcessRunning(BackgroundWorker worker) { return(IsProcessRunning(worker.GetHashCode().ToString())); }
/// <summary> /// Adds a process with default name to this handler. The default name used by this /// <see cref="IProcessHandler"/> implementation is the hash code value of the class /// as string. See also: <seealso cref="AddProcess(string, BackgroundWorker)"/> /// </summary> /// <param name="worker">the process as BackgorundWorker</param> public void AddProcess(BackgroundWorker worker) { AddProcess(worker.GetHashCode().ToString(), worker); }