有一个问题想请教下

weikeli19 2017-03-19 04:08:50
大家好 有一个问题 想请教下:假如当应用程序消息队列里有2个消息时,应用程序处理是处理完第一个消息后,再取出第2个消息进行处理吗?还是应用程序取出第一个消息并处理时 在处理的过程中,接着又取出第2个消息并进行处理?
...全文
643 75 打赏 收藏 转发到动态 举报
写回复
用AI写文章
75 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
厉害了,楼主和版主的态度要点赞
weikeli19 2017-03-21
  • 打赏
  • 举报
回复
叫 xuzunning上来
weikeli19 2017-03-21
  • 打赏
  • 举报
回复
引用 71 楼 xuzuning 的回复:
还要说多少遍你才能放弃你的固执呢? 消息 和 线程 是 windows 系统的两个主要成员(就像您和您爱人是家庭的主要成员一样) 各有各的事情,不能混为一谈
你懂不懂编程啊 不懂滚 滚回你老家
weikeli19 2017-03-21
  • 打赏
  • 举报
回复
引用 71 楼 xuzuning 的回复:
还要说多少遍你才能放弃你的固执呢? 消息 和 线程 是 windows 系统的两个主要成员(就像您和您爱人是家庭的主要成员一样) 各有各的事情,不能混为一谈
怎么叫混为一谈了 消息最终是要被相应的程序处理的 也就是相应处理程序要进入系统线程队列 这个没问题吧 怎么叫混为一谈
xuzuning 2017-03-21
  • 打赏
  • 举报
回复
还要说多少遍你才能放弃你的固执呢? 消息 和 线程 是 windows 系统的两个主要成员(就像您和您爱人是家庭的主要成员一样) 各有各的事情,不能混为一谈
weikeli19 2017-03-21
  • 打赏
  • 举报
回复
引用 68 楼 xuzuning 的回复:
系统始终驱动 应为 系统时钟驱动
还是这个优先级为6的消息仍然排在应用程序消息队列之首?但还没到系统线程队列
weikeli19 2017-03-21
  • 打赏
  • 举报
回复
引用 68 楼 xuzuning 的回复:
系统始终驱动 应为 系统时钟驱动
就是说在windows应用程序开发中 已经没有线程优先级了 只有消息优先级?那么这样说来 如果不是并发处理消息,那么假设在应用程序消息队列中有3个消息 他们的优先等级依次为1,2,3,在系统线程队列里有2个线程他们的消息优先级为5,8,那么此时应用程序消息队列里突然来了个优先级为6的消息,那么此时这个优先级为6的消息的对应函数将被立刻排在优先级为8的消息处理函数后面(就是介于消息5的对应函数和消息8的对应函数之间)?
xuzuning 2017-03-21
  • 打赏
  • 举报
回复
系统始终驱动 应为 系统时钟驱动
xuzuning 2017-03-21
  • 打赏
  • 举报
回复
消息是消息,线程是线程 这是两个东西,他们之间没有关系 你们的操作系统教程中,多半是以 时分多路的 Unix 为蓝本的,系统始终驱动 应用程序 运行在一个个的时间片中 而 windows 不是这样的,他的核心就是一个消息循环,永不停止的在那里转 因此说 windows 是 消息 驱动的操作系统
weikeli19 2017-03-21
  • 打赏
  • 举报
回复
引用 63 楼 xuzuning 的回复:
消息队列只有一个,是所有程序共有的 每个应用程序只从消息队列中取回自己需要的消息 你最好把你正在思考的问题整体表述一下,这样讨论起来才有针对性
还是在windows应用程序开发中 已经没有线程优先级了 只有消息优先级?
weikeli19 2017-03-21
  • 打赏
  • 举报
回复
引用 63 楼 xuzuning 的回复:
消息队列只有一个,是所有程序共有的 每个应用程序只从消息队列中取回自己需要的消息 你最好把你正在思考的问题整体表述一下,这样讨论起来才有针对性
如果程序消息队列里突然来了个优先级最高的消息比如是31,而系统线程队列已经有处理消息的函数它的消息优先级比如说是30,那该怎么处理,如果不是并发处理消息 是不是也将这个31的消息处理函数放入到系统线程队列中?然后把这个30的消息的处理函数放在优先级为31消息处理函数的后面 同时也要线程调度(就是还要看线程的优先级)?
weikeli19 2017-03-21
  • 打赏
  • 举报
回复
引用 63 楼 xuzuning 的回复:
消息队列只有一个,是所有程序共有的 每个应用程序只从消息队列中取回自己需要的消息 你最好把你正在思考的问题整体表述一下,这样讨论起来才有针对性
如果程序消息队列里突然来了个优先级最高的消息比如是31,而系统线程队列已经有处理消息的函数它的消息优先级比如说是30,那该怎么处理,如果不是并发处理消息 是不是也将这个31的消息放入到系统线程队列中?然后把这个30的消息的处理函数放在优先级为31消息处理函数的后面 同时也要线程调度(就是还要看线程的优先级)?
xuzuning 2017-03-21
  • 打赏
  • 举报
回复
消息队列只有一个,是所有程序共有的 每个应用程序只从消息队列中取回自己需要的消息 你最好把你正在思考的问题整体表述一下,这样讨论起来才有针对性
weikeli19 2017-03-21
  • 打赏
  • 举报
回复
引用 61 楼 xuzuning 的回复:
在消息队列中,优先级高的消息总是排在前面。 所以你不必关心处理的次序,再说这与并发并没有关系
就是说还是这个优先级最高的消息 还是在应用程序消息队列里?
xuzuning 2017-03-21
  • 打赏
  • 举报
回复
在消息队列中,优先级高的消息总是排在前面。 所以你不必关心处理的次序,再说这与并发并没有关系
weikeli19 2017-03-21
  • 打赏
  • 举报
回复
引用 58 楼 xuzuning 的回复:
同一项目的消息,自然只能是多线程
如果你要分就跟我说 我分有的是 那如果程序消息队列里突然来了个优先级最高的消息比如是31,而系统线程队列已经有处理消息的函数它的消息优先级比如说是30,那该怎么处理,如果不是并发处理消息 是不是还要看线程的优先级别?
weikeli19 2017-03-20
  • 打赏
  • 举报
回复
引用 39 楼 xuzuning 的回复:
是的 并发处理 要靠自己实现
对了 我忘了提醒你了 我所说的消息 是 按键啊 鼠标点击之类的消息
weikeni19 2017-03-20
  • 打赏
  • 举报
回复
引用 39 楼 xuzuning 的回复:
是的 并发处理 要靠自己实现
对了 我忘了提醒你了 我所说的消息 是 按键啊 鼠标点击之类的消息
weikeli19 2017-03-20
  • 打赏
  • 举报
回复
引用 42 楼 ghao0 的回复:
[quote=引用 40 楼 weikeli19 的回复:] [quote=引用 38 楼 ghao0 的回复:] 应用程序消息队列是指什么?
消息队列是指消息存放的队列 一个数据结构 这个一句话 两句话说不清[/quote] 我想问的是你是如何取消息的[/quote] 如果不添加并行取消息处理代码的话 应用程序会一个一个地按顺序从消息队列里取消息
weikeli19 2017-03-20
  • 打赏
  • 举报
回复
引用 42 楼 ghao0 的回复:
[quote=引用 40 楼 weikeli19 的回复:] [quote=引用 38 楼 ghao0 的回复:] 应用程序消息队列是指什么?
消息队列是指消息存放的队列 一个数据结构 这个一句话 两句话说不清[/quote] 我想问的是你是如何取消息的[/quote] C#的机制 自动到应用程序消息队列里取消息
加载更多回复(54)

7,765

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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