zoukankan      html  css  js  c++  java
  • 线程等待 循环执行

    最近做一个校准项目,需要10次校准,但是里面各种硬件控制开了很多线程,需要等待一次校准得出数据,再在得出的数据上进行下一步的循环。

    各种Thread、Task、Timer都试过,超级纠结,主要是没等到一次校准结束,就开始进入下次循环了。

    最终在大神的帮助下,解决问题。

    方法:

    using System.Threading.Tasks;

    using System.Threading;

    TaskFactory uiFactory = new TaskFactory(TaskScheduler.FromCurrentSynchronizationContext());

    void *****cmd()

    {

      ************//一些前面的工作

      Thread checkFinishedthread = new Thread(() => CheckIfFinishedThread());
      checkFinishedthread.IsBackground = true;
      checkFinishedthread.Start();

    }

    void CheckIfFinishedThread()
    {

      for (int i = 0; i < 10;i++ )
      {
        uiFactory.StartNew(() => ******).Wait();

        //一些赋值语句,一定要放在uiFactory中哦,因为这个还出现了Must create DependencySource on same Thread as the DependencyObject.的错误。

        uiFactory.StartNew(()=>需要等待执行结束的程序).Wait();
        while (未达到等待的条件)
        {
          Thread.Sleep(30);
        }
        if (达到条件)
        {
          数据处理

        }

       }
    }

    这样就能等待每次Calibration结束再进行下一个循环了。

  • 相关阅读:
    小米2/2S 手机由 Smartisan OS ROM 刷回 MIUI 教程
    Java构造和解析Json数据的两种方法详解二
    python-数据类型(上):数字、布尔值、字符串、字典
    python的介绍与安装
    PyCharm快捷键
    PyCharm安装模块
    PyCharm安装
    mac如何获取文件路径
    mac常用快捷键
    linux常用命令
  • 原文地址:https://www.cnblogs.com/syqun/p/thread.html
Copyright © 2011-2022 走看看