在vs2010的program.cs文件下面出现集合已修改,可能无法执行枚举操作,请问是什么原因呢?

qq_39258463 2019-01-31 07:57:52
...全文
390 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39258463 2019-02-25
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
看看 Form1.cs 文件
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{

double temp0, temp1, temp2, temp3, temp4, temp5;
int i = 0;

for (i = 1; i < serialPort1.BytesToRead; i++)
{
//byte[] b = new byte[1000];
// reC = Convert.ToByte(serialPort1.Read(b, 1, serialPort1.BytesToRead));
reC = Convert.ToByte(serialPort1.ReadByte());

if (((int)reC == 221) && (rflag == 0))
{
rflag = 1;
rcount = 1;
}
if ((rflag == 1) && (rcount < 9))
{
reInt[rcount - 1] = (int)reC;
rcount = rcount + 1;
}
if (rcount == 9)
{
rflag = 0;
rcount = 0;
// 计算角速度
TLAngle = reInt[1] + reInt[3] * 256 + reInt[2] * 256 * 256;
if ((reInt[2] & 128) == 128)
{
long x = 0xFF000000;
int y = (int)x;
TLAngle = TLAngle | y;
}
TTLFlag = reInt[7] >> 7 & 1;
LocaFlag = reInt[7] >> 6 & 1;
if (LocaFlag == 1)
LocaCount = LocaCount + 1;

if (LocaCount > 1)
{
if (Convert.ToSingle(dataGridView1[4, DrawR - 1].Value) < 9)
{
LocaFlag = 0;
LocaCount = LocaCount - 1;
}
}
if ((LocaCount == 1) && (locSt == 0) && (LocaFlag == 1))
{
if (XX > 1)
{
System.Timers.Timer timer1 = new System.Timers.Timer();
timer1.Elapsed += new ElapsedEventHandler(timer1_Tick);
UpCount_old = all_Num;
Theta_st = Math.Atan(Convert.ToSingle(dataGridView1[5, DrawR - 2].Value) / Convert.ToSingle(dataGridView1[4, DrawR - 2].Value));
DrawGrid_st = DrawR - 1;
dataGridView1[4, DrawR - 1].Value = '0'; // XX
dataGridView1[5, DrawR - 1].Value = '0'; // YY
XX = '0'; // 避免画出预行进距离
YY = '0';
//timer1.Interval = 4;
// timer1.Enabled = false;
timer1.Enabled = true;
pre_route_flag = 1;
locSt = 1;
}
else
{
LocaFlag = 0; // 避免预跑过程中,出现其它位置传感器
LocaCount = LocaCount - 1;
}
}
if ((LocaCount > 1) && ((all_Num - UpCount_old) > 1000) && (locSt == 1))
{
timer1.Enabled = false;
DrawGrid_ed = DrawR - 1;
//dataGridView1[6,DrawR - 1].Value = "第二个位置传感器";
Theta_ed = Math.Atan(Convert.ToSingle(dataGridView1[5, DrawR - 1].Value) / Convert.ToSingle(dataGridView1[4, DrawR - 1].Value));
locSt = 2;
//button3_Click(this,e);
//break;
}
reInt[7] = reInt[7] & 0x3F;
TLTime_orig = reInt[4] + reInt[5] * 256 + reInt[6] * 256 * 256 + reInt[7] * 256 * 256 * 256;
all_Num = all_Num + 1;
Inst_TLAngle = TLAngle / Convert.ToSingle(118245);
if ((TTLFlag == 1) && (UpCount == 0))
{
dataGridView1[2, 0].Value = Convert.ToString(Inst_TLAngle); //陀螺值
UpCount = UpCount + 1;
if ((TLTime_orig - TLTime_orig_old) > 200)
TLTime_orig = TLTime_orig_old + 27;
TTL_Time_st = TLTime_orig;
}
if ((TTLFlag == 0) && (UpCount > 0))
{
avg_TLAngle = avg_TLAngle + Inst_TLAngle;
UpCount = UpCount + 1;
}
if ((TTLFlag == 1) && (UpCount > 0))
{
if ((TLTime_orig - TLTime_orig_old) > 200)
TLTime_orig = TLTime_orig_old + 27;
TTL_Time_ed = TLTime_orig;

if ((TTL_Time_ed > TTL_Time_st))
{
//int index = this.dataGridView1.Rows.Add();
//dataGridView1[0,DrawR].Value = DrawR+1; // 序号
//Thread invokethread = new Thread(new ThreadStart(StartMethod));
//invokethread.IsBackground = true;
//invokethread.Start();
//var act = new Action(StartMethod);
//act.BeginInvoke(ar => act.EndInvoke(ar), null);
DrawR = this.dataGridView1.Rows.Add();

dataGridView1[6, DrawR].Value = DateTime.Now.ToString();

dataGridView1[0, DrawR].Value = Convert.ToString(DrawR + 1);//序号

//DataGridViewRow newrow = dataGridView1.Rows[index];
//DrawR = index;
//newrow.Cells[0].Value = dataGridView1.RowCount;
Timedis = TTL_Time_ed - TTL_Time_st;
//dataGridView1[1,DrawR-1].Value = Timedis;// 时间间隔
dataGridView1[1, DrawR].Value = Convert.ToString(Timedis);// 时间间隔

avg_TLAngle = (avg_TLAngle + Inst_TLAngle) / (UpCount);
//dataGridView1[2, DrawR].Value = avg_TLAngle; //陀螺值
dataGridView1[2, DrawR].Value = Convert.ToString(avg_TLAngle); //陀螺值



temp2 = Convert.ToSingle(dataGridView1[1, DrawR - 1].Value); // 时间间隔
temp1 = Convert.ToSingle(dataGridView1[2, DrawR - 1].Value); // 陀螺值


temp3 = Convert.ToSingle(dataGridView1[3, DrawR - 1].Value); //角度
temp4 = Convert.ToSingle(dataGridView1[4, DrawR - 1].Value); // XX
temp5 = Convert.ToSingle(dataGridView1[5, DrawR - 1].Value); // YY

temp0 = temp3 + (temp1 - earth_eagle) * temp2 / 7.8 / 1000;//////////////////////////////注意double与float类型
dataGridView1[3, DrawR].Value = Convert.ToString(temp0); // 角度

XX = temp4 + car_plus * Math.Cos(temp0 * 3.1415926 / 180 - Theta_st);
dataGridView1[4, DrawR].Value = Convert.ToString(XX); // XX

YY = temp5 + car_plus * Math.Sin(temp0 * 3.1415926 / 180 - Theta_st);
dataGridView1[5, DrawR].Value = Convert.ToString(YY); ; // YY
TTL_Time_st = TTL_Time_ed;
avg_TLAngle = 0;

//DrawR = this.dataGridView1.Rows.Add();
//DrawR = DrawR+1;

UpCount = 1;
}
}
if (all_Num == 1)

TLTime_orig_old = TLTime_orig;

if (all_Num > 1)
{
if ((TLTime_orig - TLTime_orig_old) > 200)
{
TLTime_orig_old = TLTime_orig + 27;
}
else

TLTime_orig_old = TLTime_orig;

}
}

}
}
xuzuning 2019-02-02
  • 打赏
  • 举报
回复
看看 Form1.cs 文件
LvBao_117 2019-02-02
  • 打赏
  • 举报
回复
引用 3 楼 qq_39258463 的回复:
[quote=引用 2 楼 LvBao_117 的回复:]
你上面一句Form Form1=new Form();
说明Form1是一个对象,而不是一个类型了,下面一句用new Form1貌似不对吧
Form Form1=new Form();这一句是我自己随便加的,加了和去掉都会出现这个错误,program.cs这个文件好像是自动生成的啊[/quote]检查下项目中有没有窗体Form1,有的话删了,重新添加一个;干脆没有这个窗体,肯定要出错
qq_39258463 2019-02-02
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
form1的构造函数打开看下,有问题
比如在foreach 循环里面直接删除集合的元素了
我这个里面完全没有用到foreach循环啊
qq_39258463 2019-02-01
  • 打赏
  • 举报
回复
引用 2 楼 LvBao_117 的回复:
你上面一句Form Form1=new Form();
说明Form1是一个对象,而不是一个类型了,下面一句用new Form1貌似不对吧
Form Form1=new Form();这一句是我自己随便加的,加了和去掉都会出现这个错误,program.cs这个文件好像是自动生成的啊
LvBao_117 2019-01-31
  • 打赏
  • 举报
回复
你上面一句Form Form1=new Form();
说明Form1是一个对象,而不是一个类型了,下面一句用new Form1貌似不对吧
threenewbee 2019-01-31
  • 打赏
  • 举报
回复
form1的构造函数打开看下,有问题 比如在foreach 循环里面直接删除集合的元素了
下载方式:https://pan.quark.cn/s/c9b9b647468b ### 初级JSP程序设计教程核心内容解析#### 一、JSP基础概述JSP(JavaServer Pages)是由Sun Microsystems公司创建的一种动态网页技术规范,主要应用于构建动态网站及Web应用。JSP技术使得开发者能够将动态数据与静态HTML文档整合,从而实现网页内容的灵活性和可变性。##### JSP的显著特性:1. **动态与静态内容的分离**:JSP技术支持将动态数据(例如数据库查询结果、实时时间等)嵌入到静态HTML文档中。这种设计方法增强了网页的适应性和可维护性。2. **易用性**:开发者可以利用常规的HTML编辑工具来编写静态部分,并通过简化的标签技术将动态内容集成到页面中。3. **跨平台兼容性**:基于Java平台的JSP具有优良的跨操作系统运行能力,能够在多种不同的系统环境中稳定工作。4. **强大的后台支持**:JSP能够通过JavaBean组件访问后端数据库及其他资源,以实现复杂的数据处理逻辑。5. **执行效率高**:JSP页面在初次被请求时会被转换为Servlet,随后的请求可以直接执行编译后的Servlet代码,从而提升了服务响应的效率。#### 二、JSP指令的运用JSP指令用于设定整个JSP页面的行为规范。这些指令通常放置在页面的顶部,向JSP容器提供处理页面的相关指导信息。##### 主要的指令类型:1. **Page指令**: - **语法结构**:`<%@ page attribute="value" %>` - **功能**:定义整个JSP页面的运行特性,如设定页面编码格式、错误处理机制等。 - **实例**: ...

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧