多线程-Delphi开发中遇到的内存错误问题

问题描述

Delphi开发中遇到的内存错误问题

#背景介绍

  • 我做了一个模拟的dll,模拟原来的发送消息的dll,实现的功能是将消息(XML)解包写到DBF中
  • 多线程环境

#同样的代码,有以下两种情况

  • 没有使用断点调试的时候,运行到发送(也就是写到DBF)的时候就会报地址错误(这一步是通过记录日志信息确定在哪一步报错的),但是线程还是继续执行,不过每次运行到发送的时候就报错
  • 但是如果使用断点调试的话,跟踪断点到发送函数的时候就没有报错,从来也不报错

这个问题我实在是没有思路,希望有经验的前辈能指点迷津,给个思路

解决方案

delphi 开发过程中遇到的问题。

时间: 2024-12-02 17:11:12

多线程-Delphi开发中遇到的内存错误问题的相关文章

对开发中常见的内存泄露,GDI泄露进行检测

  对开发中常见的内存泄露,GDI泄露进行检测 一.GDI泄露检测方法: 在软件测试阶段,可以通过procexp.exe 工具,或是通过任务管理器中选择GDI对象来查看软件GDI的对象是使用情况. 注意点:Create出来的GDI对象,都要用DeleteObject来释放:Create出来的DC,都要用DeleteDC来释放,GetDC得出的DC,要用ReleaseDC来释放.   以下是一些常用到的函数:   1.  检查GetWindowDC(), 后面是否有ReleaseDC(); 2. 

android开发中的java内存泄露分析

做了较长时间的android开发了,发现其实android应用开发入门容易,但是进阶或者成为高级工程师,需要具备的基础能力还是非常高的:性能优化.内存泄露.apk瘦身.热修复等等,这些都非常的考验一个人的能力.android成长之路还很长,自己会持续的走下去.本文主要介绍android内存泄露方面的知识.其实要真的理解内存泄露,需要对JVM.java语言有一定的了解,在这个基础上就比较容易理解本文了. 一.内存泄露概念 在java中,如果一个对象没有可用价值了,但又被其他引用所指向,那么这个对象

Android开发中常见的内存泄漏及避免总结

内存泄漏产生的原因 当一个对象已经不需要再使用了,本该被回收时,而有另外一个正在使用的对象持有它的引用从而导致它不能被回收,这导致本该被回收的对象不能被回收而停留在堆内存中,这就产生了内存泄漏. 内存泄漏对程序的影响? 内存泄漏是造成应用程序OOM的主要原因之一!我们知道Android系统为每个应用程序分配的内存有限,而当一个应用中产生的内存泄漏比较多时,这就难免会导致应用所需要的内存超过这个系统分配的内存限额,这就造成了内存溢出而导致应用Crash. Android中常见的内存泄漏汇总 单例造

详解iOS应用开发中的ARC内存管理方式_IOS

提示:本文中所说的"实例变量"即是"成员变量","局部变量"即是"本地变量" 零.简介ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain.release.autorelease语句.你不再需要担心内存管理,因为编译器为你处理了一切 注意:ARC 是编译器特性,而不是 iOS 运行时特性(除了weak指针系统),它也不是类似于其它语言中的垃圾收集器.因此 ARC 和

实例讲解Android多线程应用开发中Handler的使用_Android

其实可以理解Handler为主线程和另外的线程之间进行数据更新的东东,并且Handler在主线程中,并在Handler直接调用线程的run方法 package com.Handler02; import android.app.Activity; import android.os.Bundle; import android.os.Handler; public class Handler02Activity extends Activity { /** Called when the act

iOS多线程应用开发中自定义NSOperation类的实例解析_IOS

一.实现一个简单的tableView显示效果 实现效果展示: 代码示例(使用以前在主控制器中进行业务处理的方式) 1.新建一个项目,让控制器继承自UITableViewController. 复制代码 代码如下: // //  YYViewController.h //  01-自定义Operation // //  Created by apple on 14-6-26. //  Copyright (c) 2014年 itcase. All rights reserved. // #impo

实例讲解Android多线程应用开发中Handler的使用

其实可以理解Handler为主线程和另外的线程之间进行数据更新的东东,并且Handler在主线程中,并在Handler直接调用线程的run方法 package com.Handler02; import android.app.Activity; import android.os.Bundle; import android.os.Handler; public class Handler02Activity extends Activity { /** Called when the act

详解iOS App设计模式开发中对于享元模式的运用_IOS

享元模式的概念 在面向对象软件设计中,利用公共对象不仅能节省资源还能提高性能.共享的对象只能提供某些内在的信息,而不能用来识别对象.专门用于设计可共享对象的一种设计模式叫做享元模式(Flyweight pattern). 实现享元模式需要两个关键组件,通常是可共享的享元对象和保存他们的池.某种中央对象维护这个池,并从它返回适当的实例. 运用共享技术有效地支持大量细粒度的对象. 公共交通(如公共汽车)已有一百多年的历史了.大量去往相同方向的乘客可以分担保有和经营车辆(如公共汽车)的费用.公共汽车有

调试-Delphi开发出现的内存错误问题

问题描述 Delphi开发出现的内存错误问题 ###背景介绍### 我做了一个模拟的dll,模拟原来的发送消息的dll,实现的功能是将消息(XML)解包写到DBF中 多线程环境 ###同样的代码,有以下两种情况### 没有使用断点调试的时候,运行到发送(也就是写到DBF)的时候就会报地址错误(这一步是通过记录日志信息确定在哪一步报错的),但是线程还是继续执行,不过每次运行到发送的时候就报错 但是如果使用断点调试的话,跟踪断点到发送函数的时候就没有报错,从来也不报错 这个问题我实在是没有思路,希望