PDA

View Full Version : سوال: خطا در Thread وقتی متد در کلاس دیگر باشد



دلتنگ اسمان
چهارشنبه 07 آبان 1393, 11:17 صبح
با سلام
یه کلاس و یه متد دارم. میخوام در فرم اصلی این متد رو فراخوانی کنم و در یک thread اجرا کنم. اما خطا میده.
این هم کد :

private void button3_Click(object sender, EventArgs e)
{
trd trd = new trd();
Thread t1 = new Thread(new ThreadStart(trd.fact));


این هم کلاس ومتد :

class trd
{
public trd()
{
}
public void fact(object x1)
{
string x = (string)x1;
double xx = Convert.ToDouble(x);


while (xx < double.MaxValue)
{
xx += 10;
}



}

}

این هم متن خطا :
No overload for 'fact' matches delegate 'System.Threading.ThreadStart'

pedram.11
چهارشنبه 07 آبان 1393, 11:33 صبح
سلام متد شما پارامتر میگیره و باید پارامتر رو هم ارسال کنید:
string x = "0";
Thread t1 = new Thread(new ThreadStart(() => trd.fact(x)));

حالا xتون هرچی که میخواد باشه

دلتنگ اسمان
چهارشنبه 07 آبان 1393, 12:37 عصر
اگه متد مقدار برگشتی داشته باشه چطور میشه مقدار رو دریافت کرد ؟

pedram.11
چهارشنبه 07 آبان 1393, 12:51 عصر
ترد یک متد معمولی نیست که شما مقداری رو در یک ترد دیگه دریافت کنید. این کار شدنی هست اما دردسر داره و همچنین اصولی نیست
برای اینکار بهتره کل عملیات رو در همون ترد انجام بدید