如何在Main_Task中停止任务以及在Primary_numbers任务中释放任务,直到我将成为how_much_numbers? 请帮帮我,我不明白如何使用任务... 我不需要Gui冻结..我尝试使用锁定连接,但没有工作,并且无法移动我的表单... 这是代码:
private void button1_Click(object sender, EventArgs e)
{
IsCanceled == false;
Thread th = new Thread(new ThreadStart(Thread1));
Thread th2 = new Thread(new ThreadStart(Thread2));
th.start();
th2.start();
}
private Task task1;
int i=0;
int number=0;
void Thread1()
{
task1 = Task.Factory.StartNew(Main_Task);
Task.WaitAll(new Task[] { task1});
}
void Thread2()
{
Task t3 = Task.Factory.StartNew(Primary_numbers);
Task.WaitAll(new Task[] { t3 });
}
private void Primary_numbers()
{
int how_much_numbers = Convert.ToInt32(textBox3.Text);
using (StreamWriter writer = new StreamWriter("prime_numbers.txt"))
{
while (i <= how_much_numbers)
{
if (number!=0)
if (prime_num(number) == true)
{
writer.WriteLine(skaicius[i] + "");
}
if (isCanceled == true)
break;
//HERE I NEED TO RELEASE Main_Task
} writer.Close();
}
}
private void Main_Task()
{
int how_much_numbers = Convert.ToInt32(textBox3.Text);
using (StreamWriter writer = new StreamWriter("random_numbers.txt"))
{
while (i <= how_much_numbers)
{
Random rnd = new Random();
number = rnd.Next(1, 100000);
writer.WriteLine(number + "");
if (isCanceled == true)
break;
//HERE I NEED TO STOP TASK
i++;
}
writer.Close();
}
}