Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 19083|Respuesta: 0

[Fuente] ThreadStart y ParameterizedThreadStart son diferentes

[Copiar enlace]
Publicado en 14/11/2016 10:25:44 | | |
ThreadStart:

El delegado ThreadStart se define como void ThreadStart(), lo que significa que el método ejecutado no puede tener parámetros.
HiloStart hiloIniciar=nuevo HiloIniciar(Calcular);
Hilo de hilo=nuevo Hilo(hiloInicio);
hilo. Inicio();
vacío público Calculate()
   {
doble Diámetro=0,5;
Console.Write("El área del círculo con diámetro de {0} es {1}"Diameter,Diameter*Math.PI);
   }
       Aquí usamos un delegado que define un tipo ThreadStart, que define el método que el hilo debe ejecutar: Calcular, en el que se calcula la circunferencia de un círculo con un diámetro de 0,5, y se obtiene. Esto constituye el ejemplo más sencillo de multihilo, que en muchos casos es suficiente




ParameterThreadStart:
ParameterThreadStart se define como void ParameterizedThreadStart(estado del objeto), y la función de inicio del hilo definida usando este delegado puede aceptar un parámetro de entrada, por ejemplo:



Hilo ParameterizadoInicio hijoIniciar=nuevo Hilo ParameterizadoIniciar(Calcular)
Hilo de hilo=nuevo Hilo() ;
hilo. Inicio (0,9);
empty público Calculate(object arg)
{
doble Diámetro=doble(arg);
Console.Write("El área del círculo con diámetro de {0} es {1}"Diameter,Diameter*Math.PI);
}

El método Calculate tiene un parámetro de tipo objeto, aunque solo hay un parámetro, y también es un tipo objeto, y aún necesita ser convertido al usarlo, pero afortunadamente pueden existir parámetros, y combinando múltiples parámetros en una clase, y luego pasando la instancia de esta clase como parámetro, puedes lograr una transferencia de múltiples parámetros. Como qué:





clase AddParams
{
    público int a, b;

    public AddParams(int numb1, int numb2)
    {
      A = numb1;
      b = numb2;
    }
}
#endregion

Programa de la clase
{
    vacío estático Main(string[] args)
    {
      Console.WriteLine("***** Añadir con objetos Hilos *****");
      Console.WriteLine("ID del hilo en Main(): {0}",
        Hilo.Hilocorriente.HiloGestionadoId);

      AddParams ap = nuevos AddParams(10, 10);
      Hilo t = nuevo Hilo(nuevo ParameterizedThreadStart(Añadir));
      t.Start(ap);
      Consola.ReadLine();
    }

    #region Método de Añadir
    static void Add(object data)
    {
      si (los datos son AddParams)
      {
        Console.WriteLine("ID del hilo en Main(): {0}",
          Hilo.Hilocorriente.HiloGestionadoId);

        AddParams ap = (AddParams)data;
        Console.WriteLine("{0} + {1} es {2}",
          ap.a, ap.b, ap.a + ap.b);
      }
    }
    #endregion
}
}




Anterior:.net/c# Rastrear avatares de usuario, coger avatares de QQ
Próximo:.net/c# calcula la edad del coche del conductor
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com