C# usa subprocesos para ejecución simultánea

usando Sistema;
usando System.Collections.Generic;
usando System.ComponentModel;
usando System.Data;
usando System.Drawing;
usando System.Linq;
usando System.Text;
usando System.Threading.Tasks;
usando System.Windows.Forms;
usando System.Threading;


espacio de nombres bingfazhixingtest
{     clase parcial pública Formulario1: Formulario     {
  

        proceso público ParameterizedThreadStart1;
        proceso público ParameterizedThreadStart2;
        Hilo público hilo1;
        Hilo público hilo2;
        público bool bThread1;
        público bool bThread2;
        Formulario público1()
        {             InicializarComponente();

//创建线程
            process1 = new ParameterizedThreadStart(Add1);
            proceso2 = nuevo ParameterizedThreadStart(Add2);
            hilo1 = nuevo hilo (proceso1);
            hilo2 = nuevo hilo(proceso2);
      
        }

        vacío privado Agregar1 (objeto obj)
        {             mientras (verdadero)             {                     para (int a = 10; a < 100000; a = a + 2)                     {                         if (bThread1) {                             this.Invoke(new Action(() => label1.Text = a.ToString()));                             Hilo.Sleep(200);                         }                             //label2.Text = a.ToString();                     }                     Consola.ReadLine();             }         }         privado vacío Add2 (objeto obj)         {             mientras (verdadero)


               







                        


               





            {                     for (int a = 10; a < 100000; a = a + 1)                     {                         if (bThread2)                       {                         this.Invoke(new Action(() => label2.Text = a.ToString()));                         Hilo.Sleep(200);                         // etiqueta2.Texto = a.ToString();                         }                     }                     Consola.ReadLine();
              









            }
        }

        botón vacío privado1_Click(remitente del objeto, EventArgs e)
        {             //ThreadPool.QueueUserWorkItem(estado => CountTo(int.Parse(textBox1.Text), cts.Token));             bThread1 = true;                     thread1.Start();         }         vacío privado button2_Click(object sender, EventArgs e)         {             //Crea dos variables y detiene el ciclo



           



            bThread2 = verdadero;
            hilo2.Inicio();

        }
      

        botón vacío privado3_Click (remitente del objeto, EventArgs e)
        {             bThread1 = false;         }

           
            

        botón vacío privado4_Click(remitente del objeto, EventArgs e)
        {             //bThread2 = false;             thread2.Abort(); //destrucción del hilo         }     } }





 

Otras operaciones del hilo.

thread2.Suspend();//Suspender hilo
thread2.Abort();//Abortar hilo

thread2.Resume();//continuar hilo

Supongo que te gusta

Origin blog.csdn.net/sxmsxmsmxm/article/details/127457012
Recomendado
Clasificación