线程方法跳过'如果'声明

时间:2015-12-14 14:17:24

标签: c# multithreading loops

当我尝试在创建的线程中使用我的方法时,线程跳过'如果'循环中的语句。问题是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";
    }
}

1 个答案:

答案 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的话,那么我觉得它几乎没有任何时间可以完成。