当我尝试在创建的线程中使用我的方法时,线程跳过'如果'循环中的语句。问题是label4总是显示其他状态。我该怎么办才能正确操作?这是我的代码;
这是我创建线程的地方;
for(int i = 0; i <threads; i++)
{
var tempThread = new Thread(new ThreadStart(DoWork));
tempThread.Name = i.ToString();
tempThread.Start();
}
CheckForIllegalCrossThreadCalls = false;
这就是我的线程方法所做的;
public void DoWork()
{
for(int i=2; i < variable/ 2; i++)
{
if (variable% i == 0) label4.Text ="yes not";
else label4.Text = "yes";
}
}
答案 0 :(得分:0)
我猜这是你想要做的,但既然你没有告诉我们你的目标我们只能猜测
public void DoWork()
{
for(int i=2; i < variable/ 2; i++)
{
if (variable% i == 0) {
label4.Text ="yes not";
return;
}
}
label4.Text = "yes";
}
我不使用C#但是如果DoWork是你创建一个Thread的话,那么我觉得它几乎没有任何时间可以完成。