Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 19083|Atsakyti: 0

[Šaltinis] "ThreadStart" ir "ParameterizedThreadStart" skiriasi

[Kopijuoti nuorodą]
Paskelbta 2016-11-14 10:25:44 | | |
ThreadStart:

ThreadStart atstovas apibrėžiamas kaip void ThreadStart(), o tai reiškia, kad vykdomas metodas negali turėti parametrų.
ThreadStart threadStart=naujas ThreadStart(Skaičiuoti);
Thread thread=nauja gija(threadStart);
siūlas. Pradžia();
public void Skaičiuoti()
   {
dvigubas skersmuo = 0,5;
Console.Write("Apskritimo plotas, kurio skersmuo {0} yra {1}"Skersmuo,Skersmuo*Math.PI);
   }
       Čia naudojame delegatą, apibrėžiantį "ThreadStart" tipą, kuris apibrėžia metodą, kurį turi vykdyti gija: Apskaičiuoti, kuriame apskaičiuojamas 0,5 skersmens apskritimo perimetras, ir išėjimai. Tai yra paprasčiausias kelių gijų pavyzdys, kurio daugeliu atvejų pakanka




ParameterThreadStart:
ParameterThreadStart apibrėžiamas kaip void ParameterizedThreadStart(objekto būsena), o gijos, apibrėžtos naudojant šį atstovą, paleidimo funkcija gali priimti įvesties parametrą, pvz.:



ParametrizedThreadStart threadStart=naujas ParametrizedThreadStart(Skaičiuoti)
Thread thread=naujas Thread() ;
siūlas. Pradžia(0,9);
public void Calculate(object arg)
{
dvigubas skersmuo = dvigubas (arg);
Console.Write("Apskritimo plotas, kurio skersmuo {0} yra {1}"Skersmuo,Skersmuo*Math.PI);
}

Skaičiavimo metodas turi objekto tipo parametrą, nors yra tik vienas parametras, ir tai taip pat yra objekto tipas, ir jį vis tiek reikia konvertuoti jį naudojant, tačiau, laimei, gali būti parametrų, o sujungę kelis parametrus į klasę, o tada perduodami šios klasės egzempliorių kaip parametrą, galite pasiekti kelių parametrų perdavimą. Pavyzdžiui, kas:





klasė AddParams
{
    viešasis int a, b;

    viešas AddParams (int numb1, int numb2)
    {
      a = numb1;
      b = numb2;
    }
}
#endregion

klasės programa
{
    static void Main(string[] args)
    {
      Console.WriteLine("***** pridėjimas naudojant gijos objektus *****");
      Console.WriteLine("Gijos ID Main(): {0}",
        Thread.CurrentThread.ManagedThreadId);

      AddParams ap = naujas AddParams(10, 10);
      Thread t = new Thread(new ParameterizedThreadStart(Add));
      t.Start(ap);
      Konsolė.ReadLine();
    }

    #region Pridėti metodą
    statinis void Add(objekto duomenys)
    {
      if (duomenys yra AddParams)
      {
        Console.WriteLine("Gijos ID Main(): {0}",
          Thread.CurrentThread.ManagedThreadId);

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




Ankstesnis:.net/c# Nuskaitykite vartotojo avatarus, paimkite QQ avatarus
Kitą:.net/c# apskaičiuoja vairuotojo automobilio amžių
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com