PDA

View Full Version : استفاده از Thread در TreeView



Mohsen_Fotouhi
چهارشنبه 17 تیر 1388, 02:23 صبح
سلام دوستان من می خواهم تعداد زیادی Node را به یک TreeView در هنگام بارگذاری Add

کنم ولی چون تعداد Node ها خیلی زیاده و زمان زیادی رو صرف اضافه کردن Node ها می کنه

فرم بحالت فریز در میاد من می خواستم اگه میشه با استفاده از Thread یکی راهی رو

معرفی کنید تا حین اضافه شدن Node ها به TreeView فرم فریز نشه و بتونم از Node های

اضافه شده استفاده کنم ممنون می شم راهنماییم کنید اگه میشه روی یک حلقه پیاده

سازیش کنید

با تشکر

Sajjad.Aghapour
چهارشنبه 17 تیر 1388, 10:33 صبح
فرق این دو تا کد رو خودت ببین....
توی دومی از Background Worker استفاده شده


private void button_Click(object sender, EventArgs e)
{
for (int i = 0; i < 1000; i++)
{
treeView.Nodes.Add(i.ToString());
Thread.Sleep(10);
}
}




private void button_Click(object sender, EventArgs e)
{
backgroundWorker.RunWorkerAsync();
}
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i < 1000; i++)
{
backgroundWorker.ReportProgress(0, i);
Thread.Sleep(10);
}
}

private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
treeView1.Nodes.Add(e.UserState.ToString());
}

esmaeily-hosein
چهارشنبه 17 تیر 1388, 14:12 عصر
من توصیه میکنم ابتدا نودهای ریشه را قرار بدی بعد هر موقع Expand کاربر زد . child هاش بهش اضافه کنی . مثل رجیستری ویندوز