PDA

View Full Version : سوال: Error in MultiThreading



Nima_kyan
چهارشنبه 04 اردیبهشت 1392, 18:10 عصر
سلام
وقتی از این کد استفاده میکنم :


Thread Mythread = new Thread(new ThreadStart(GetData));
Mythread.Name = string.Format("thread{0}", i + 1);
Mythread.Start(uc);



private void GetData(string _uc)
این خطا رو میده:
No overload for 'GetData' matches delegate 'System.Threading.ThreadStart

و وقتی از این کد استفاده میکنم:


Thread Mythread = new Thread(new ThreadStart(GetData(uc)));
Mythread.Name = string.Format("thread{0}", i + 1);
Mythread.Start();

این خطا صادر میشه :
Method name expected

Mahmoud.Afrad
چهارشنبه 04 اردیبهشت 1392, 18:29 عصر
چون متد پارامتر ورودی داره از ParameterizedThreadStart استفاده کن.
پارامتر ورودی متدGetData هم باید از جنس Object باشه(نوع پارامتر ورودیStart از نوع object هست) . داخل متد میتونی آرگومان ورودی رو به نوع مورد نظر تبدیل کنی.
مثال:

private void button1_Click(object sender, EventArgs e)
{
string uc = "!!!!!!!!!!!!!!";
Thread Mythread = new Thread(new ParameterizedThreadStart(GetData));
//Mythread.Name = string.Format("thread{0}", i + 1);
Mythread.Start(uc);
}

private void GetData(object _uc)
{
string str = _uc as string;
MessageBox.Show(str);
}