阅读:1747回复:11
多线程的问题
Win32 程序,除了主线程,用CreateThread函数开了两个线程,一个用来接收DMA传输来的数据用Ddraw来实时显示,另一个用来监听串口,实践证明好象串口的线程会在系统图象显示一个小时后造成影响,使图象出现错误,两个线程该怎么协调一下,使它们互不干扰呢
|
|
沙发#
发布于:2004-09-22 21:19
如果没有全局变量的话,应该没有影响。
|
|
|
板凳#
发布于:2004-09-23 10:00
“会在系统图象显示一个小时后造成影响”。。
肯定是你在做图象显示时,有内存泄露问题。 |
|
地板#
发布于:2004-09-23 10:49
分开来测试,分别只运行一个线程看有没有问题!没有问题再同时运行,看两个线程同时用到哪些变量,有可能在外部被改变! :cool:
|
|
|
地下室#
发布于:2004-09-23 14:15
两个线程分别运行没有问题
图像显示内存泄漏会是怎么造成的呢 我的显示是用dma读取外部数据到内存,利用的是在应用程序里用F= new BYTE[3968*4],然后将指针f传递给驱动程序,读出dma传进来的数据到内存,这么做会有问题吗 应该怎样做才安全呢 |
|
5楼#
发布于:2004-09-23 14:16
而且两个线程没有用到共用的变量
|
|
6楼#
发布于:2004-09-23 14:55
两个线程分别运行没有问题 你new之后有没有delete,不过我怀疑是你使用的位图句柄用完拉没有释放 |
|
7楼#
发布于:2004-09-23 19:58
我DMA进来的是数据采集卡进来的图象数据,实时采集实时显示,根本没有用到位图
|
|
8楼#
发布于:2004-10-01 22:29
你new了以后,delelte放在哪里呢?
|
|
|
9楼#
发布于:2004-10-02 05:04
我赞成s_6666_s_qd 的判断!很可能是内存泄漏
|
|
10楼#
发布于:2004-10-10 16:34
不要忽略你用到的任何一个指针!!!!
|
|
11楼#
发布于:2004-10-10 18:11
如果没有全局变量,或者内存泄漏,应该没有问题的。就象两个程序各自在跑一样
|
|