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结束再进行下一个循环了。

  • 相关阅读:
    华为路由器配置 FTP
    交换机远程 Telnet设置
    动态路由协议 OSPF
    动态路由协议 RIP
    Fiddler 为手机设置代理上网
    路由优先级、路由链路冗余
    关闭137,138,139危险端口
    VNC远程连接一直在Attempting to reconnect to VNC server...
    ManageEngine卓豪旗下Site24x7云监控2020年"成绩单"
    实现无缝的终端安全的5大模块
  • 原文地址:https://www.cnblogs.com/syqun/p/thread.html
Copyright © 2011-2022 走看看