PDA

View Full Version : اشکال در برنامه ای که قراره مالتی تردش کنم



dildoo
شنبه 12 دی 1388, 17:12 عصر
سلام من یک برنامه که قراره مالتی تردش کنم
کدی که ازش استفاده میکنم اینه ولی عملا هیچ کاری انجام نمیشه چرا ؟؟؟

if (MultiThread.Checked == true )
{

Form1 ss = new Form1();
ThreadStart ts = new ThreadStart(ss.Function);
ss.caseTB = caseTB;

Thread myt = new Thread(ts);

myt.Priority = ThreadPriority.Highest;
myt.Start();

}]

مهدی رحیم زاده
شنبه 12 دی 1388, 19:43 عصر
عنوان شما اصلاح شد !
در انتخاب عناوین دقت نمایید در غیر این صورت پست های شما حذف می شوند.
موفق باشید

dildoo
یک شنبه 13 دی 1388, 15:33 عصر
سلام
یک چیزای جدیدی فهمیدم کسی میتونه کمک کنه ؟
من یک مسیری رو توی function از یک textbox میخونم که موقع فراخونی در مالتی تردینگ مقدارش null در صورتی که واقعا null نیست حالا پیدا کنید پرتغال فروش رو ؟؟؟
قبلا از تمام اساتید تشکر میکنم

Sajjad.Aghapour
یک شنبه 13 دی 1388, 18:31 عصر
خوب مشکلتون کجاست؟
این ss.Function چه کاری داره انجام میده؟

کد شما هم عملا مشکلی نداره.ولی بستگی داره مشکل شما چی باشه....

dildoo
یک شنبه 13 دی 1388, 19:42 عصر
سلام
نگاه کن من تو کامپایل مشکلی ندارم
وقتی قرار باشه سینگل هم کار کنه بازم مشکلی نیست ولی وفتی میزارمش رو مالتی ترد , یک مسیری رو از داخل یک textbox میخونه اون مقدارو null میبینه در حالی که null نیست
این تابع یک مسیری رو از اینترنت دانلود میکنه

ممنون از اینکه جواب دادی

Sajjad.Aghapour
یک شنبه 13 دی 1388, 21:15 عصر
من نمیدونم شما چطوری پیاده سازی کردید.ولی قاعدتا نباید مشکلی وجود داشته باشه.
کد زیر رو ببینید....


public class Test
{
public string S { get; set; }

public void Sa()
{
MessageBox.Show(this.S);
}
}

//invoke
Test test = new Test();
test.S = "Hello";

Thread t = new Thread(new ThreadStart(test.Sa));
t.Start();

dildoo
یک شنبه 13 دی 1388, 21:47 عصر
سلام
متاسفانه این برنامه رو من ننوشتم و کسی که اونو نوشته اصلا به فکر مالتی تردینگ نیوده
این کد تابع است
لطفا ایمیلتون رو اینجا بزارید تا کد تابع رو براتون میل کنم

hakelberfin
دوشنبه 14 دی 1388, 01:33 صبح
آیا TextBox ی رو که شما ازش استفاده میکنین توسط همین Thread تولید شده؟
اگه TexyBox توسط Thread اصلی سیستم نولید شده باشه بای موقع استفاده Invoke اش کنی.
از این کد استفاده کن


private void ButtonThread_Click(object sender, EventArgs e)
{
Thread thread = new Thread(UpdateTextRight);
thread.Priority = ThreadPriority.Normal;
thread.Start();
}
private void UpdateTextRight()
{

Form1 ss = new Form1();

this.BeginInvoke((ThreadStart)delegate()
{
textBox1.Text = "Here is some new text.";
}
);
}