Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 19083|Atbildi: 0

[Avots] ThreadStart un ParameterizedThreadStart ir atšķirīgi

[Kopēt saiti]
Publicēts 14.11.2016 10:25:44 | | |
Pavediens:

ThreadStart pārstāvis ir definēts kā void ThreadStart(), kas nozīmē, ka izpildītajai metodei nevar būt parametri.
ThreadStart threadStart=jauns ThreadStart(Aprēķināt);
Thread thread=jauns Thread(threadStart);
pavediens. Sākums();
public void Aprēķināt()
   {
dubultais diametrs = 0.5;
Console.Write("Apļa laukums ar diametru {0} ir {1}"Diametrs,Diametrs*Math.PI);
   }
       Šeit mēs izmantojam delegātu, kas definē ThreadStart tipu, kas definē metodi, kas pavedienam jāizpilda: Aprēķināt, kurā tiek aprēķināts apļa apkārtmērs ar diametru 0,5, un izejas. Tas ir vienkāršākais daudzpavedienu piemērs, kas daudzos gadījumos ir pietiekams




Parametru pavediena sākums:
ParameterThreadStart ir definēts kā void ParameterizedThreadStart(objekta stāvoklis), un pavediena startēšanas funkcija, kas definēta, izmantojot šo pārstāvi, var pieņemt ievades parametru, piemēram:



ParametrizētsThreadStart threadStart=jauns ParametrizētsThreadStart(Aprēķināt)
Thread thread=jauns thread() ;
pavediens. Sākums(0.9);
public void Calculate(object arg)
{
dubultais diametrs = dubultā (arg);
Console.Write("Apļa laukums ar diametru {0} ir {1}"Diametrs,Diametrs*Math.PI);
}

Aprēķināt metodi ir objekta tipa parametrs, lai gan ir tikai viens parametrs, un tas ir arī objekta tips, un tas joprojām ir jāpārvērš, to lietojot, bet, par laimi, var būt parametri, un, apvienojot vairākus parametrus klasē un pēc tam nododot šīs klases instanci kā parametru, jūs varat sasniegt vairāku parametru pārsūtīšanu. Piemēram, kas:





klase AddParams
{
    publiskais int a, b;

    publiskais AddParams (int numb1, int numb2)
    {
      a = numb1;
      b = numb2;
    }
}
#endregion

nodarbību programma
{
    statisks tukšums Main(virkne[] argumenti)
    {
      Console.WriteLine("***** Objektu pievienošana ar pavedienu *****");
      Console.WriteLine("Pavediena ID Main(): {0}",
        Thread.CurrentThread.ManagedThreadId);

      AddParams ap = jauns AddParams(10, 10);
      Thread t = jauns pavediens (jauns ParameterizedThreadStart(Add));
      t.Sākums(ap);
      Console.ReadLine();
    }

    #region Pievienot metodi
    static void Add(objekta dati)
    {
      if (dati ir AddParams)
      {
        Console.WriteLine("Pavediena ID Main(): {0}",
          Thread.CurrentThread.ManagedThreadId);

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




Iepriekšējo:.net/c# Pārmeklējiet lietotāju iemiesojumus, satveriet QQ iemiesojumus
Nākamo:.net/c# aprēķina vadītāja automašīnas vecumu
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com