测量-c# 使用线程采集数据只能采集一部分

问题描述

c# 使用线程采集数据只能采集一部分
我想用一个电机带动平台转动,然后平台上有个传感器采集数据,所以建立了2个线程,
一个负责电机的驱动以及传感器的开关,另一个就是专门采集数据的。
可是每次采集到的数据在20000多的时候就采集不了了。
下面附上代码,我确实没想到原因,开始以为是延时的问题,后来在第二个线程开始加了1ms的延时,还是不行。
//定义旋转所需时间
public static double PTime;
//定义旋转所需脉冲、采样到的点数
public int ringpulse PPoints;

private void motor1()
{
//正向旋转一圈
Motion.mAcm_AxMoveRel(axhand[Axis] Convert.ToDouble(ringpulse));
//传感器开始测量
Cur115.StartMesure();

//休眠等待一圈扫描完成
Thread.Sleep(Convert.ToInt32(PTime * 1000));

//停止测量
Cur115.StopMesure();
//反转回零点
Motion.mAcm_AxMoveRel(axhand[Axis] Convert.ToDouble(ringpulse*(-1)));

    }    private void sensor1()    {        //等待motor1执行一段时间        Thread.Sleep(1);         //读取数据        for (int i = 0; i < PPoints; i++)        {            //调用函数读取数据,方式为“取出并移除”            PDistance[i] = Cur115.GetData();            //输出            Console.WriteLine(""distance{0}={1}"" i PDistance[i]);        }    }

private void test_Click(object sender EventArgs e)
{
Cur115.ClearDataQueue();
Thread ThMotor1 = new Thread(new ThreadStart( motor1));
ThMotor1.IsBackground = true;
Thread thsensor = new Thread(new ThreadStart(sensor1));
thsensor.IsBackground = true;
//这个只是计算PPoints和ringpulse的函数,没其他作用。
CalforPM();
ThMotor1.Start();

        thsensor.Start();        StepComplete_Bit = true;    }

解决方案

额,第一次发帖,不知道为什么代码不能明显的标示出来。

时间: 2024-10-03 16:35:00

测量-c# 使用线程采集数据只能采集一部分的相关文章

[置顶]C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)

第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel,是真尼玛的累,虽然那个时候C#还很菜,也想能不能通过程序来批量获取(所以平时想法要多才好).几经周折,终于发现了HtmlAgilityPack神器,这几年也用HtmlAgilityPack采集了很多类型数据,特别是足球赛事资料库的数据采集以及天气数据采集,都是使用HtmlAgilityPack,所以

adapter-android利用SimpleCursorAdapter获取联系人数据只能显示一部分

问题描述 android利用SimpleCursorAdapter获取联系人数据只能显示一部分 这是书上的一个例子,但是没能获取全部的联系人列表,只获取了一部分,求解 public class MyActivity extends ListActivity {@Overridepublic void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.ac

线程采集数据

问题描述 现在有采集数据从传感器中可以实时读出,我现在需要把这些实时的数据暂存到我开的一组数组中,因为我无法知道这些数据是多长时间采集一次,所以只能用线程来读取它到我的数组中以便后面使用,现在就存在个问题:当我在线程中把传感器采集来的数据送到数组中暂存的数据,会不会不一致,一个传感器采集来的数据会送到多个数组元素里?或者传感器采集来的数据,采样线程中的数组无法取得,造成数据丢失? 解决方案 解决方案二:没人?

如何在传输结构体数据的同时,完成结构体中变量数据的采集?

问题描述 最近在做一个项目,自己负责的主要工作是将定义好的结构体中的变量的数据传出来,以及matlab计算后传回来的数据进行解算并显示结构体1:传递初始化数据-没有问题结构体2:实时传递摇杆采集的数据-有问题结构体3:传递自动飞行数据-没有问题结构体4:接受matlab结算的数据,并进行显示(暂时还没有测试)现在遇到的问题,主要是:我需要实时传递摇杆采集的数据并传递出去这是按钮事件,当点击按钮之后开始传递结构体的数据SendUAV_ManualPilotpSendUAV_ManualPilot;

基于DataHub采集数据的营销报告分析

         本案例是基于阿里云上的DataHub收集营销数据,并通过MaxCompute对营销数据进行分析.下面主要介绍如何用DataHub收集营销数据,以及在MaxCompute中如何对数据进行分析. 1 DataHub采集数据          阿里云的datahub提供了接口可将项目中产生的数据同步到Datahub中,并实时同步到MaxCompute项目对应的表中.下面介绍如何利用DataHub收集数据. 1.1 创建项目          DataHub地址为https://dat

flume到hdfs写入问题-flume采集数据到hdfs性能问题

问题描述 flume采集数据到hdfs性能问题 本人目前遇到flume采集写入hdfs性能等各种问题,大致如下.在10上的xx/xx目录下的数据进行读取 sink到08上的flume 由08上的flume写到07的hdfs上 30多m的文件写了好久.有时候会内存溢出等问题 Name the components on this agent a1.sources = r1 a1.sinks = k1 a1.channels = c1 Describe/configure the source a1

asp采集数据并自动判断网页编码并转换

在做采集的朋友就会知道经常会碰到采集过来的内容是乱码,下面我们就来看一篇关于asp教程采集数据并自动判断网页编码并转换吧. <%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <

Flume安装部署,采集方案配置文件编写案例,启动agent采集数据

1.2 Flume实战案例 1.2.1 Flume的安装部署 1.Flume的安装非常简单,只需要解压即可,当然,前提是已有hadoop环境 上传安装包到数据源所在节点上 然后解压 tar -zxvf apache-flume-1.6.0-bin.tar.gz,最终解压到的位置是:/home/tuzq/software/apache-flume-1.6.0-bin 然后进入flume的目录,修改conf下的flume-env.sh,在里面配置JAVA_HOME 2.根据数据采集的需求配置采集方案

asp msxml.xmlhttp采集数据并解决乱码问题

'在asp中要采集数据一般会利用了asp xmlhttp这个组件来实例了,很多时候采集过来的中文会是乱码,我们利用 bytestobstr函数转换解决了采集乱码的问题. function gethttppage(url) on error resume next dim http set http=server.createobject("msxml2.xmlhttp") http.open "get",url,false http.send() if http.r