XiaoHui.net 笑汇程序员论坛首页
工作并快乐着,职业并休闲着
寻梦的岁月从不言辛苦几许,
不问收获几多……
» 游客:  申请新用户 | 登录 | 会员 | 统计 | 帮助 » XiaoHui.Net 笑汇程序员论坛 | 纯文字版 | 全站索引 | XiaoHui.com


[进程/线程/DLL] 多线程问题,请高手支招!

RSS 订阅当前论坛  

上一主题 下一主题
     

标题: [进程/线程/DLL] 多线程问题,请高手支招!  
 
tedd
小水手
Rank: 1



UID 29753
精华 0
积分 2
帖子 2
阅读权限 10
注册 2007-3-9
状态 离线
多线程问题,请高手支招!

不好意思我刚学VC时间不长,所以遇到问题不知道从何处着手了,还请高手指教。

软件背景:
    程序调用了外部动态库(第三方提供),引用了3个头文件。8个线程都用了同样的函数。用了8个按钮代表8个线程,没点击一个按钮执行一个线程,目的就是不管何时点击任何一个按钮就可以执行各自的线程,并将固定路径下的文件写到外设中。

我的程序没有进行任何同步,程序就出现了等待.
我的程序是通过点击按钮开始执行线程内容的:
void CTrialDLDlg::On_start1()
{
   tedd1 = (thread1*)AfxBeginThread(RUNTIME_CLASS
           (thread1),THREAD_PRIORITY_NORMAL,0, CREATE_SUSPENDED);

   tedd1->ResumeThread();

}
然后运行thread1的RUN函数执行具体操作,

1。现在我也不知道这个同步在那里加,用哪一类同步。(我在线程中用过信号量,然后在具体的公共函数前后加LOck(),UNlock,结果是不行)
2。还有就是线程的建立是在初始化的时候建立好,还是我这种情况也可以

还望高手给指点指点。非常感谢。
2007-3-15 09:55#1
查看资料  Blog  发短消息  顶部
 
XiaoHui
管理员
Rank: 9Rank: 9Rank: 9


UID 2
精华 1
积分 4861
帖子 4851
阅读权限 200
注册 2001-1-23
来自 猎户星座
状态 离线
同步的话, 主要是涉及到公用变量的写入. 一般的, 用信号量(CreateMutex)就可以解决了. 在对公用变量进行写入之前, 调用 WaitForSingleObject, 写入完成之后 ReleaseMutex

具体可以看看MSDN中, 关于Synchronization Functions这一章的内容


飞往猎户星座....
2007-3-18 08:59#2
查看资料  访问主页  Blog  发短消息  顶部
 
风云幻梦
小水手
Rank: 1



UID 29969
精华 0
积分 2
帖子 2
阅读权限 10
注册 2007-4-18
状态 离线
请教高手,谢谢

2007-4-20 11:10#3
查看资料  Blog  发短消息  QQ  顶部
 
风云幻梦
小水手
Rank: 1



UID 29969
精华 0
积分 2
帖子 2
阅读权限 10
注册 2007-4-18
状态 离线
请教高手,谢谢

如何挂起主线程,如main函数的线程
2007-4-20 11:11#4
查看资料  Blog  发短消息  QQ  顶部
 
麦斯
版主
Rank: 7Rank: 7Rank: 7



UID 1285
精华 0
积分 1678
帖子 1678
阅读权限 100
注册 2002-4-24
状态 离线
CreateEvent
WaitForSignleObject
2007-4-27 10:22#5
查看资料  Blog  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题  


 


所有时间为 GMT+8, 现在时间是 2008-12-2 03:48 Powered by Discuz! 4.1.0 清除 Cookies - XiaoHui.Net 笑汇程序员论坛 - Archiver