نوشته شده توسط
Mahmoud.Afrad
اینطور نمیشه نظر داد. کد کامل بگذارید.
این کد رو ببینید الان این کد پوشه ای به تعداد ورودی ایجاد میکنه و در داخل هر پوشه صد پوشه جدید درست میکنه.
private void button1_Click(object sender, EventArgs e)
{
int i=int.Parse(textBox1.Text);
progressBar1.Maximum = i-1;
progressBar2.Maximum = 99;
backgroundWorker1.RunWorkerAsync(i);
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
int i = int.Parse(textBox1.Text);
for (int j = 0; j < i; j++)
{
Directory.CreateDirectory("D:\\TestWork"+j.ToStrin g());
backgroundWorker2.RunWorkerAsync(j);
backgroundWorker1.ReportProgress(j);
}
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
progressBar1.Value = 0;
}
private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e)
{
int j=int.Parse(e.Argument.ToString());
for (int i = 0; i < 100; i++)
{
Directory.CreateDirectory("D:\\TestWork" + j.ToString()+""+i.ToString());
backgroundWorker2.ReportProgress(i);
}
}
private void backgroundWorker2_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar2.Value = e.ProgressPercentage;
}
private void backgroundWorker2_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
progressBar2.Value = 0;
}
حالا این دوتا تداخل ایجاد میکنن. و کار دومی تموم نشده اولی دوباره دومی رو دوباره فراخوانی میکنه که خطای مشغول بودن میده.