利用CArchive::Flush不停发图片 运行一段时间出现程序卡死的现象

时间:2022-04-19 15:24:40
跟踪 是在 m_pArchiveOut->Flush();出现问题  弄了好长时间了 谁能帮帮我啊 非常非常感谢

17 个解决方案

#1


无码无真像
我猜, 可能是资源泄漏导致

#2


看看任务管理器
cpu占用率 内存增长情况

#3


主要关注下内存增长,发送的比形成的慢就会这样。

#4


引用 1 楼 xiaohuh421 的回复:
无码无真像
我猜, 可能是资源泄漏导致
怎么才能找到泄露的地方呢?

#5


引用 2 楼 CS2130 的回复:
看看任务管理器
cpu占用率 内存增长情况
都没有太大变化,应该不是这的问题

#6


引用 3 楼 tiger9991 的回复:
主要关注下内存增长,发送的比形成的慢就会这样。
之前有过内存泄露 我都改过来了  是发送的比形成的快会这样吧?不懂啊?

#7


引用 6 楼 lidongsheng0601 的回复:
Quote: 引用 3 楼 tiger9991 的回复:

主要关注下内存增长,发送的比形成的慢就会这样。
之前有过内存泄露 我都改过来了  是发送的比形成的快会这样吧?不懂啊?


内存泄露找到也会缓解该问题的。
其实每次发送可以把相关的任务进程信息输出作对比。
GetProcessMemoryInfo将进程信息用日志输出

#8


引用 3 楼 tiger9991 的回复:
主要关注下内存增长,发送的比形成的慢就会这样。
你的意思是服务器端形成的慢吗 怎么让形成的快些 或者发送的慢些呢

#9


引用 5 楼 lidongsheng0601 的回复:
Quote: 引用 2 楼 CS2130 的回复:

看看任务管理器
cpu占用率 内存增长情况
都没有太大变化,应该不是这的问题
对了 发送端占用CPU挺高的 但不知道是什么原因 

#10


难道你没开多线程,在用界面线程发送么?

#11


引用 10 楼 tiger9991 的回复:
难道你没开多线程,在用界面线程发送么?
就是在ONTIMER函数里一边截图  一边发送 哪有不脱吗 

#12


引用 7 楼 tiger9991 的回复:
Quote: 引用 6 楼 lidongsheng0601 的回复:

Quote: 引用 3 楼 tiger9991 的回复:

主要关注下内存增长,发送的比形成的慢就会这样。
之前有过内存泄露 我都改过来了  是发送的比形成的快会这样吧?不懂啊?


内存泄露找到也会缓解该问题的。
其实每次发送可以把相关的任务进程信息输出作对比。
GetProcessMemoryInfo将进程信息用日志输出
这个函数应该放在那呢?

#13


引用 10 楼 tiger9991 的回复:
难道你没开多线程,在用界面线程发送么?
我刚接触多线程 有很多不懂  你有啥好想法吗  我想实现的功能是不停的截取视频位图并发送 能和我说下思路吗

#14


引用 11 楼 lidongsheng0601 的回复:
Quote: 引用 10 楼 tiger9991 的回复:

难道你没开多线程,在用界面线程发送么?
就是在ONTIMER函数里一边截图  一边发送 哪有不脱吗 


这个方法还是在用主界面线程的。
把数据采集的工作内容放到另外个线程
CreateThread,AfxBeginThread,_beginThread
你自己查查API吧,很容易

#15


引用 14 楼 tiger9991 的回复:
Quote: 引用 11 楼 lidongsheng0601 的回复:

Quote: 引用 10 楼 tiger9991 的回复:

难道你没开多线程,在用界面线程发送么?
就是在ONTIMER函数里一边截图  一边发送 哪有不脱吗 


这个方法还是在用主界面线程的。
把数据采集的工作内容放到另外个线程
CreateThread,AfxBeginThread,_beginThread
你自己查查API吧,很容易
这个我已经实现了 但问题又来了 怎么按时采集数据呢?还用定时器吗 ?还是while(true),有什么好办法吗

#16


引用 15 楼 lidongsheng0601 的回复:
Quote: 引用 14 楼 tiger9991 的回复:

Quote: 引用 11 楼 lidongsheng0601 的回复:

Quote: 引用 10 楼 tiger9991 的回复:

难道你没开多线程,在用界面线程发送么?
就是在ONTIMER函数里一边截图  一边发送 哪有不脱吗 


这个方法还是在用主界面线程的。
把数据采集的工作内容放到另外个线程
CreateThread,AfxBeginThread,_beginThread
你自己查查API吧,很容易
这个我已经实现了 但问题又来了 怎么按时采集数据呢?还用定时器吗 ?还是while(true),有什么好办法吗


Sleep就可以

#17


引用 16 楼 tiger9991 的回复:
Quote: 引用 15 楼 lidongsheng0601 的回复:

Quote: 引用 14 楼 tiger9991 的回复:

Quote: 引用 11 楼 lidongsheng0601 的回复:

Quote: 引用 10 楼 tiger9991 的回复:

难道你没开多线程,在用界面线程发送么?
就是在ONTIMER函数里一边截图  一边发送 哪有不脱吗 


这个方法还是在用主界面线程的。
把数据采集的工作内容放到另外个线程
CreateThread,AfxBeginThread,_beginThread
你自己查查API吧,很容易
这个我已经实现了 但问题又来了 怎么按时采集数据呢?还用定时器吗 ?还是while(true),有什么好办法吗


Sleep就可以
再网上查了下 不是线程的问题 应该是你之前说的 发的比形成快的原因http://bbs.csdn.net/topics/10116236
这个人也遇到过 但也没给出好办法

#1


无码无真像
我猜, 可能是资源泄漏导致

#2


看看任务管理器
cpu占用率 内存增长情况

#3


主要关注下内存增长,发送的比形成的慢就会这样。

#4


引用 1 楼 xiaohuh421 的回复:
无码无真像
我猜, 可能是资源泄漏导致
怎么才能找到泄露的地方呢?

#5


引用 2 楼 CS2130 的回复:
看看任务管理器
cpu占用率 内存增长情况
都没有太大变化,应该不是这的问题

#6


引用 3 楼 tiger9991 的回复:
主要关注下内存增长,发送的比形成的慢就会这样。
之前有过内存泄露 我都改过来了  是发送的比形成的快会这样吧?不懂啊?

#7


引用 6 楼 lidongsheng0601 的回复:
Quote: 引用 3 楼 tiger9991 的回复:

主要关注下内存增长,发送的比形成的慢就会这样。
之前有过内存泄露 我都改过来了  是发送的比形成的快会这样吧?不懂啊?


内存泄露找到也会缓解该问题的。
其实每次发送可以把相关的任务进程信息输出作对比。
GetProcessMemoryInfo将进程信息用日志输出

#8


引用 3 楼 tiger9991 的回复:
主要关注下内存增长,发送的比形成的慢就会这样。
你的意思是服务器端形成的慢吗 怎么让形成的快些 或者发送的慢些呢

#9


引用 5 楼 lidongsheng0601 的回复:
Quote: 引用 2 楼 CS2130 的回复:

看看任务管理器
cpu占用率 内存增长情况
都没有太大变化,应该不是这的问题
对了 发送端占用CPU挺高的 但不知道是什么原因 

#10


难道你没开多线程,在用界面线程发送么?

#11


引用 10 楼 tiger9991 的回复:
难道你没开多线程,在用界面线程发送么?
就是在ONTIMER函数里一边截图  一边发送 哪有不脱吗 

#12


引用 7 楼 tiger9991 的回复:
Quote: 引用 6 楼 lidongsheng0601 的回复:

Quote: 引用 3 楼 tiger9991 的回复:

主要关注下内存增长,发送的比形成的慢就会这样。
之前有过内存泄露 我都改过来了  是发送的比形成的快会这样吧?不懂啊?


内存泄露找到也会缓解该问题的。
其实每次发送可以把相关的任务进程信息输出作对比。
GetProcessMemoryInfo将进程信息用日志输出
这个函数应该放在那呢?

#13


引用 10 楼 tiger9991 的回复:
难道你没开多线程,在用界面线程发送么?
我刚接触多线程 有很多不懂  你有啥好想法吗  我想实现的功能是不停的截取视频位图并发送 能和我说下思路吗

#14


引用 11 楼 lidongsheng0601 的回复:
Quote: 引用 10 楼 tiger9991 的回复:

难道你没开多线程,在用界面线程发送么?
就是在ONTIMER函数里一边截图  一边发送 哪有不脱吗 


这个方法还是在用主界面线程的。
把数据采集的工作内容放到另外个线程
CreateThread,AfxBeginThread,_beginThread
你自己查查API吧,很容易

#15


引用 14 楼 tiger9991 的回复:
Quote: 引用 11 楼 lidongsheng0601 的回复:

Quote: 引用 10 楼 tiger9991 的回复:

难道你没开多线程,在用界面线程发送么?
就是在ONTIMER函数里一边截图  一边发送 哪有不脱吗 


这个方法还是在用主界面线程的。
把数据采集的工作内容放到另外个线程
CreateThread,AfxBeginThread,_beginThread
你自己查查API吧,很容易
这个我已经实现了 但问题又来了 怎么按时采集数据呢?还用定时器吗 ?还是while(true),有什么好办法吗

#16


引用 15 楼 lidongsheng0601 的回复:
Quote: 引用 14 楼 tiger9991 的回复:

Quote: 引用 11 楼 lidongsheng0601 的回复:

Quote: 引用 10 楼 tiger9991 的回复:

难道你没开多线程,在用界面线程发送么?
就是在ONTIMER函数里一边截图  一边发送 哪有不脱吗 


这个方法还是在用主界面线程的。
把数据采集的工作内容放到另外个线程
CreateThread,AfxBeginThread,_beginThread
你自己查查API吧,很容易
这个我已经实现了 但问题又来了 怎么按时采集数据呢?还用定时器吗 ?还是while(true),有什么好办法吗


Sleep就可以

#17


引用 16 楼 tiger9991 的回复:
Quote: 引用 15 楼 lidongsheng0601 的回复:

Quote: 引用 14 楼 tiger9991 的回复:

Quote: 引用 11 楼 lidongsheng0601 的回复:

Quote: 引用 10 楼 tiger9991 的回复:

难道你没开多线程,在用界面线程发送么?
就是在ONTIMER函数里一边截图  一边发送 哪有不脱吗 


这个方法还是在用主界面线程的。
把数据采集的工作内容放到另外个线程
CreateThread,AfxBeginThread,_beginThread
你自己查查API吧,很容易
这个我已经实现了 但问题又来了 怎么按时采集数据呢?还用定时器吗 ?还是while(true),有什么好办法吗


Sleep就可以
再网上查了下 不是线程的问题 应该是你之前说的 发的比形成快的原因http://bbs.csdn.net/topics/10116236
这个人也遇到过 但也没给出好办法