智能车制作

 找回密码
 注册

扫一扫,访问微社区

楼主: shenxy0011
打印 上一主题 下一主题

想用C#写一个上位机

  [复制链接]

3

主题

58

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2054
威望
1075
贡献
597
兑换币
570
注册时间
2014-6-28
在线时间
191 小时
11#
发表于 2014-12-4 22:53:56 | 只看该作者
zhou1994 发表于 2014-12-4 19:39
怎么还有死循环了,串口接收是一个自动的线程,在触发的时候,把数据接收下来,做一个简单判断,然后丢给 ...

跨线程不能访问,你真怎么处理的
回复 支持 反对

使用道具 举报

32

主题

3009

帖子

0

精华

杰出人士

学期班的来卖萌?

Rank: 12Rank: 12Rank: 12

积分
14832

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章资源大师奖章

威望
5952
贡献
3172
兑换币
4257
注册时间
2013-11-26
在线时间
2854 小时
12#
发表于 2014-12-4 23:34:18 | 只看该作者
shenxy0011 发表于 2014-12-4 22:33
嗯嗯,刚刚发现了自己程序上的漏洞...本来一次传来了几K个数据,却被我处理成一个数据,所以很慢很慢

不过 ...

线程跑完了,自动结束。不用你去管。你只要新建,然后开启就好了
回复 支持 反对

使用道具 举报

32

主题

3009

帖子

0

精华

杰出人士

学期班的来卖萌?

Rank: 12Rank: 12Rank: 12

积分
14832

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章资源大师奖章

威望
5952
贡献
3172
兑换币
4257
注册时间
2013-11-26
在线时间
2854 小时
13#
发表于 2014-12-4 23:36:40 | 只看该作者
quex 发表于 2014-12-4 22:53
跨线程不能访问,你真怎么处理的

夸线程处理。看你的是什么情况。也许你的可以用Invoke解决。或者是在线程中去调用一个函数。用这个函数来传递数据
回复 支持 反对

使用道具 举报

162

主题

2048

帖子

5

精华

超级版主

岳麓山没有车神

Rank: 10Rank: 10Rank: 10

积分
14920

论坛元老奖章优秀会员奖章活跃会员奖章论坛骨干奖章在线王奖章优秀版主奖章资源大师奖章

QQ
威望
6285
贡献
5963
兑换币
2581
注册时间
2013-11-14
在线时间
1336 小时
14#
发表于 2014-12-4 23:56:57 | 只看该作者
其实用什么都一样,都是线程的故事
回复 支持 反对

使用道具 举报

162

主题

2048

帖子

5

精华

超级版主

岳麓山没有车神

Rank: 10Rank: 10Rank: 10

积分
14920

论坛元老奖章优秀会员奖章活跃会员奖章论坛骨干奖章在线王奖章优秀版主奖章资源大师奖章

QQ
威望
6285
贡献
5963
兑换币
2581
注册时间
2013-11-14
在线时间
1336 小时
15#
发表于 2014-12-4 23:57:22 | 只看该作者
zhou1994 发表于 2014-12-4 23:34
线程跑完了,自动结束。不用你去管。你只要新建,然后开启就好了

是这句有问题。
回复 支持 反对

使用道具 举报

32

主题

3009

帖子

0

精华

杰出人士

学期班的来卖萌?

Rank: 12Rank: 12Rank: 12

积分
14832

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章资源大师奖章

威望
5952
贡献
3172
兑换币
4257
注册时间
2013-11-26
在线时间
2854 小时
16#
发表于 2014-12-4 23:59:46 | 只看该作者
Quixote 发表于 2014-12-4 23:57
是这句有问题。

怎么有问题?线程是自己跑完就完了嘛。诸葛怎么看?
回复 支持 反对

使用道具 举报

162

主题

2048

帖子

5

精华

超级版主

岳麓山没有车神

Rank: 10Rank: 10Rank: 10

积分
14920

论坛元老奖章优秀会员奖章活跃会员奖章论坛骨干奖章在线王奖章优秀版主奖章资源大师奖章

QQ
威望
6285
贡献
5963
兑换币
2581
注册时间
2013-11-14
在线时间
1336 小时
17#
发表于 2014-12-5 00:03:35 | 只看该作者
zhou1994 发表于 2014-12-4 23:59
怎么有问题?线程是自己跑完就完了嘛。诸葛怎么看?

线程是需要自己终结的。我的串口接收部分大致格式如下。
while(1)
{
      if(1 == waitSomethingOccur())
      {
            return;
      }
      if(1 == readFromHandle())
      {
            // 去将数值传递
      }
}

waitSomethingOccur();是线程终结用的函数
虽然程序结束后,线程会自然而然地强制关闭,但这不是一个好的方法。因为有可能他不会被关闭。
回复 支持 反对

使用道具 举报

3

主题

58

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2054
威望
1075
贡献
597
兑换币
570
注册时间
2014-6-28
在线时间
191 小时
18#
发表于 2014-12-5 00:06:39 | 只看该作者
zhou1994 发表于 2014-12-4 23:36
夸线程处理。看你的是什么情况。也许你的可以用Invoke解决。或者是在线程中去调用一个函数。用这个函数来 ...

Invoke的话, 在原线程执行,那开辟线程的意义在哪里
回复 支持 反对

使用道具 举报

32

主题

3009

帖子

0

精华

杰出人士

学期班的来卖萌?

Rank: 12Rank: 12Rank: 12

积分
14832

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章资源大师奖章

威望
5952
贡献
3172
兑换币
4257
注册时间
2013-11-26
在线时间
2854 小时
19#
发表于 2014-12-5 00:39:25 | 只看该作者

RE: 想用C#写一个上位机

Quixote 发表于 2014-12-5 00:03
线程是需要自己终结的。我的串口接收部分大致格式如下。
while(1)
{

这么说的话就能理解。但是对于所有线程的终结,我只在退出程序的时候做,不然你的线程结束标志放在线程末尾,和不放区别在哪里?
回复 支持 反对

使用道具 举报

32

主题

3009

帖子

0

精华

杰出人士

学期班的来卖萌?

Rank: 12Rank: 12Rank: 12

积分
14832

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章资源大师奖章

威望
5952
贡献
3172
兑换币
4257
注册时间
2013-11-26
在线时间
2854 小时
20#
发表于 2014-12-5 00:40:58 | 只看该作者

RE: 想用C#写一个上位机

quex 发表于 2014-12-5 00:06
Invoke的话, 在原线程执行,那开辟线程的意义在哪里

你说的是夸线程的问题,一般用在对控件的更改。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-26 03:10 , Processed in 0.052118 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表