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
}
} |