100分,多线程的问题

CppFile 2009-02-06 08:57:33
这里有主程序和线程Thread A,线程A里创建了一个类 class1,这个class有2个函数,class.a和class.b,线程A循环执行class.a函数,并发结果用sendmessage发送给主程序,这都没问题。
问题来了:主程序希望调用class.b这个函数,但是又不能新创建一个class1,因为Class1占用了串口资源,再创建新的class会失败。那么主程序里面怎么调用class.b不会引起线程冲突呢?

我目前的做法,在主程序中创建class1,然后传给线程a,线程a里面用Synchronize函数来保证不出问题,这样的确没问题,但是我觉得应该有更好的方法。

我有一个想法,能不能让主程序发消息给线程a呢,让a执行相关的函数,这样不就没问题了吗?不知道这样的想法有没问题?或者各位朋友有别的好的思路,一起共享一下?
...全文
119 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
我来看看CB 2009-02-08
  • 打赏
  • 举报
回复
这个问题好解决,就是判断串口是否被占用,也就是资源冲突问题。
如果你的方法能解决,就接着用
痞子酷 2009-02-07
  • 打赏
  • 举报
回复
使用互斥信号灯,主线程和辅现场共享class
oyljerry 2009-02-07
  • 打赏
  • 举报
回复
主线程一样可以发消息给线程,PostThreadMessage() API,然后在你的线程中处理....
ydlchina 2009-02-07
  • 打赏
  • 举报
回复
能否将a和b的功能集成为一个,或单独建个c读取串口,a和b都是通过c读取数据的
我不懂电脑 2009-02-07
  • 打赏
  • 举报
回复
可以把b功能单独提出来建立一个类。
CppFile 2009-02-06
  • 打赏
  • 举报
回复
只要class.b当中处理好冲突就行。

//////////////////////////////////////
这里处理冲突需要那方面的注意事项呢?请详细讲讲,谢谢
僵哥 2009-02-06
  • 打赏
  • 举报
回复
只要class.b当中处理好冲突就行。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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