таймер перестает активироваться во время оператора - PullRequest
0 голосов
/ 10 мая 2018

У меня есть таймер, и он извлекает данные из ПЛК.У меня есть часть, где я записываю данные в ПЛК, а затем пишу для ответа от ПЛК.Есть флаг, и я жду, пока он изменится на true.мой таймер читает флаг ... но когда я добираюсь до своего оператора while, таймер перестает срабатывать.Зачем ?вот мой код:

  void movePixalLinkCam(int pos)
    {
        bool flag;

        if (state == 2)
        {
            flag = true;
            tcClient.WriteAny(Pos0number, Convert.ToDouble(pos));
            tcClient.WriteAny(Axis0MoveStartnumber, flag);

            while(!Axis0MoveFlag)
            {

            }
            flag = false;
            tcClient.WriteAny(Axis0MoveStartnumber, flag);
        }

        }

таймер, кажется, останавливается во время оператора while.Зачем?я должен поставить эту функцию в другой поток или что-то?

Обновление

 private void timer1_Tick(object sender, EventArgs e)
    {

        try
        {
          dataStream.Position = 0;
            tcClient.Read(Axis0MoveFlagnumber, dataStream);
            Axis0MoveFlag = binRead.ReadBoolean();
            dataStream.Position = 0;}
          catch (Exception err)
        {
            MessageBox.Show(err.Message.ToString());
        }
...