|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 重叠 I/O 事件不在信号状态中
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
2546
人关注过本帖
标题:
重叠 I/O 事件不在信号状态中
只看楼主
加入收藏
wfoo
等 级:
论坛游侠
威 望:
7
帖 子:120
专家分:134
注 册:2011-8-6
第
11
楼
收藏
得分:0
有时候需要非阻塞读写,如果不用异步读写可以做到这样么?
2014-06-02 11:50
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
12
楼
收藏
得分:0
串口硬件是不容許并行的,所有讀寫都衹能在單個時刻中進行,而并行任務不能確保多個綫程不同時對該硬件操作,必須設置一個信號狀態,告訴別的綫程你(某個綫程)當前正在占用串口,請等待我操作完成你再操作(因爲這種讀寫操作不能瞬間完成)。對這種硬件而言,多綫程實際上是假的。
[
本帖最后由 TonyDeng 于 2014-6-2 11:54 编辑
]
授人以渔,不授人以鱼。
2014-06-02 11:52
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
13
楼
收藏
得分:0
不用想了,串口必須阻塞。
授人以渔,不授人以鱼。
2014-06-02 11:56
举报帖子
使用道具
赠送鲜花
wfoo
等 级:
论坛游侠
威 望:
7
帖 子:120
专家分:134
注 册:2011-8-6
第
14
楼
收藏
得分:0
串口肯定是可以同时进此读和写(读写数据线是单独的),只是不能同时读 或 同时写
我也并没有2个线程同时去读
2014-06-02 11:56
举报帖子
使用道具
赠送鲜花
wfoo
等 级:
论坛游侠
威 望:
7
帖 子:120
专家分:134
注 册:2011-8-6
第
15
楼
收藏
得分:0
如果当前读不到数据,就直接返回,这肯定是可以的。
但是Windows下的API我不怎么会用。
2014-06-02 11:58
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
16
楼
收藏
得分:0
你自己知道沒有同時讀寫,用異步操作幹嘛!操作系統對異步調用,它會理你有沒有同時嗎?它對異步函數就需要有這種信號標志,才能執行異步讀寫請求。明知不會是并行的操作,根本就不需要用異步機制,多綫程不是那麽好玩的,沒有很多人想象中那麽高效。Jeffrey Richter對多綫程并行操作的機制有深入分析,有空看看再寫這種程序吧。
授人以渔,不授人以鱼。
2014-06-02 12:02
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
17
楼
收藏
得分:0
我衹能簡單地告訴你一句話:Windows下的程序(subsystem=windows)與subsysten=console下的,執行機制完全不同,前者是由操作系統調動程序代碼執行的,而後者是程序代碼調用操作系統資源執行任務的,編程思維截然相反,用後者的思路去寫前者的程序,當然容易碰壁。
授人以渔,不授人以鱼。
2014-06-02 12:05
举报帖子
使用道具
赠送鲜花
wfoo
等 级:
论坛游侠
威 望:
7
帖 子:120
专家分:134
注 册:2011-8-6
第
18
楼
收藏
得分:0
但读和写可能要同时进行,并且读的话要 驱动接受到了多少数据就读出多少数据,不要阻塞
2014-06-02 12:05
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
19
楼
收藏
得分:0
以下是引用
wfoo
在2014-6-2 12:05:26的发言:
但读和写可能要同时进行,并且读的话要 驱动接受到了多少数据就读出多少数据,不要阻塞
已經說了,硬件不允許。不再重複回答了。
授人以渔,不授人以鱼。
2014-06-02 12:06
举报帖子
使用道具
赠送鲜花
wfoo
等 级:
论坛游侠
威 望:
7
帖 子:120
专家分:134
注 册:2011-8-6
第
20
楼
收藏
得分:0
串口读有一根数据线, 写有另一个数据线,怎么可能不允许。
这两根线不冲突,所以肯定允许,对于串口的控制寄存器读写都是不同的,也不会冲突。
2014-06-02 12:10
举报帖子
使用道具
赠送鲜花
24
2/3页
1
2
3
快速回复:
重叠 I/O 事件不在信号状态中
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.017073 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved