Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 19716|Jawab: 0

[Sumber] ThreadStart dan ParameterizedThreadStart berbeda

[Salin tautan]
Diposting pada 14/11/2016 10.25.44 | | |
Mulai Benang:

Delegasi ThreadStart didefinisikan sebagai void ThreadStart(), yang berarti bahwa metode yang dijalankan tidak dapat memiliki parameter.
ThreadStart threadStart=new ThreadStart(Hitung);
Thread thread=thread baru (threadStart);
benang. Mulai();
public void Calculate()
   {
Diameter ganda = 0,5;
Console.Write("Area Lingkaran dengan Diameter {0} adalah {1}"Diameter,Diameter*Math.PI);
   }
       Di sini kita menggunakan delegasi yang mendefinisikan jenis ThreadStart, yang mendefinisikan metode yang perlu dijalankan oleh utas: Hitung, di mana keliling lingkaran dengan diameter 0,5 dihitung, dan output. Ini merupakan contoh paling sederhana dari multithreading, yang dalam banyak kasus sudah cukup




ParameterThreadStart:
ParameterThreadStart didefinisikan sebagai void ParameterizedThreadStart(status objek), dan fungsi startup utas yang ditentukan menggunakan delegasi ini dapat menerima parameter input, misalnya:



ParameterizedThreadStart threadStart=new ParameterizedThreadStart(Hitung)
Utas = utas baru () ;
benang. Mulai(0.9);
public void Hitung (objek arg)
{
Diameter ganda = ganda (arg);
Console.Write("Area Lingkaran dengan Diameter {0} adalah {1}"Diameter,Diameter*Math.PI);
}

Metode Calculate memiliki parameter jenis objek, meskipun hanya ada satu parameter, dan juga merupakan jenis objek, dan masih perlu dikonversi saat menggunakannya, tetapi untungnya, mungkin ada parameter, dan dengan menggabungkan beberapa parameter ke dalam kelas, dan kemudian meneruskan instance class ini sebagai parameter, Anda dapat mencapai beberapa transfer parameter. Seperti apa:





kelas AddParams
{
    publik int a, b;

    publik AddParams(int numb1, int numb2)
    {
      a = mati rasa1;
      b = mati rasa2;
    }
}
#endregion

Program kelas
{
    static void Main(string[] args)
    {
      Console.WriteLine("***** Menambahkan dengan objek Thread *****");
      Console.WriteLine("ID utas di Main(): {0}",
        Thread.CurrentThread.ManagedThreadId);

      AddParams ap = AddParams baru(10, 10);
      Thread t = Thread baru(baru ParameterizedThreadStart(Add));
      t.Mulai(ap);
      Konsol.ReadLine();
    }

    #region Metode Tambahkan
    statis void Tambahkan (data objek)
    {
      if (data adalah AddParams)
      {
        Console.WriteLine("ID utas di Main(): {0}",
          Thread.CurrentThread.ManagedThreadId);

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




Mantan:.net/c# Crawl avatar pengguna, ambil avatar QQ
Depan:.net/c# menghitung usia mobil pengemudi
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com