一个使用多线程写同一个文件的程序示例,请大家帮忙调试
unit Main_Unit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type TWriteThread = class(TThread)
private
//
protected
procedure Execute;
public
//
end;
type
TMainForm = class(TForm)
Button1: TButton;
Button2: TButton;
CheckBox1: TCheckBox;
Memo1: TMemo;
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure ThreadDone(Sender : TObject);
end;
var
MainForm: TMainForm;
DoneFlags : integer;
tempfile : file;
cs:TRTLCriticalSection;
filename : string;
pos : longint;
implementation
{$R *.dfm}
{ TWriteThread }
{constructor TWriteThread.create;
begin
//
end; }
procedure TWriteThread.Execute; //每个线程都向today.txt写入内容:"f"
var
i ,temp_len : integer;
buf : array[1..100] of char;
begin
OnTerminate:=MainForm.ThreadDone;
EnterCriticalSection(cs);
filename := 'D:\Documents and Settings\Administrator\桌面\today.txt';
for i:=1 to 100 do
begin
assignfile(tempfile,filename);
if FileExists(filename)=true then
begin
reset(tempfile,1);
pos:=filesize(tempfile);
end
else
begin
rewrite(tempfile,1);
pos:=0;
end;
seek(tempfile,pos);
FillChar(buf,sizeof(buf),'f');
temp_len := sizeof(buf);
blockwrite(tempfile,buf,temp_len);
end;
LeaveCriticalSection(cs);
end;
{ TMainForm }
procedure TMainForm.ThreadDone;
var
i : integer;
begin
//inherited;
inc(DoneFlags);
if DoneFlags = 10 then
begin //make sure 10 threads all finished
closefile(tempfile);
DeleteCriticalSection(cs);
end
end;
procedure TMainForm.Button2Click(Sender: TObject);
var
TempWriteThds: array[1..10] of TWriteThread;
i : integer;
Handel_Thd : array[1..10] of THandle;
begin
InitializeCriticalSection(cs);
for i:=1 to 10 do //创建十个线程
begin
TempWriteThds[i] :=TWriteThread.Create(false);
sleep(10);
Handel_Thd[i] := TempWriteThds[i].Handle;
end;
end;
end.
我在运行时,出现:Abstract error!请大家帮忙看一下是什么问题。谢谢!
相关推荐
亚美尼亚国界、省界、市界矢量数据SHP格式.zip
本资源为《亚美尼亚国界、省界、市界矢量数据SHP格式》压缩包,文件大小约 48.1 KB,适合按项目统一保存和使用。实际覆盖范围与内容请结合包内文件及说明核对。 从压缩包目录可见Shapefile 主文件(.shp)、空间索引(.shx)、属性表(.dbf)、投影说明(.prj)、编码说明(.cpg)。解压后请保持配套文件同名并保存在同一目录,再加载需要的图层。 可结合实际内容用于 GIS 学习、行政区划展示、专题地图制作、分区统计及空间叠加分析。各地区行政层级的含义可能不同,应核对实际属性字段,避免直接将所有层级理解为省、市、县。 可使用 QGIS、ArcGIS 等支持 Shapefile 的软件加载 .shp 文件。叠加其他图层或关联统计表前,请检查坐标系统、字段编码与关联标识,避免仅凭名称匹配。 来源、年份、精度、坐标系、记录数、字段含义及使用条件,以实际文件和原始资料说明为准。
冰岛国界、省界、市界矢量数据SHP格式.zip
本资源为《冰岛国界、省界、市界矢量数据SHP格式》压缩包,文件大小约 1.3 MB,适合按项目统一保存和使用。实际覆盖范围与内容请结合包内文件及说明核对。 从压缩包目录可见Shapefile 主文件(.shp)、空间索引(.shx)、属性表(.dbf)、投影说明(.prj)、编码说明(.cpg)。解压后请保持配套文件同名并保存在同一目录,再加载需要的图层。 可结合实际内容用于 GIS 学习、行政区划展示、专题地图制作、分区统计及空间叠加分析。各地区行政层级的含义可能不同,应核对实际属性字段,避免直接将所有层级理解为省、市、县。 可使用 QGIS、ArcGIS 等支持 Shapefile 的软件加载 .shp 文件。叠加其他图层或关联统计表前,请检查坐标系统、字段编码与关联标识,避免仅凭名称匹配。 来源、年份、精度、坐标系、记录数、字段含义及使用条件,以实际文件和原始资料说明为准。
洪都拉斯国界、省界、市界矢量数据SHP格式.zip
本资源为《洪都拉斯国界、省界、市界矢量数据SHP格式》压缩包,文件大小约 2.9 MB,适合按项目统一保存和使用。实际覆盖范围与内容请结合包内文件及说明核对。 从压缩包目录可见Shapefile 主文件(.shp)、空间索引(.shx)、属性表(.dbf)、投影说明(.prj)、编码说明(.cpg)。解压后请保持配套文件同名并保存在同一目录,再加载需要的图层。 可结合实际内容用于 GIS 学习、行政区划展示、专题地图制作、分区统计及空间叠加分析。各地区行政层级的含义可能不同,应核对实际属性字段,避免直接将所有层级理解为省、市、县。 可使用 QGIS、ArcGIS 等支持 Shapefile 的软件加载 .shp 文件。叠加其他图层或关联统计表前,请检查坐标系统、字段编码与关联标识,避免仅凭名称匹配。 来源、年份、精度、坐标系、记录数、字段含义及使用条件,以实际文件和原始资料说明为准。
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
内容概要:本文系统解读了一套用于多机器人路径规划(MAPF)的MATLAB代码库,聚焦于优先级规划算法的设计与实现。该框架采用四层架构——几何解析、拓扑构建、调度规划与可视化呈现,有效分离空间路径搜索与时间冲突消解过程,提升算法效率与可扩展性。核心机制包括动态边权膨胀、节点预留历史与几何惩罚驱动的局部同步策略,前者通过软惩罚引导后续智能体绕行而非硬封锁路径,后者利用哈希结构与前向信息传递优化冲突检测效率。同时引入Petri网建模方法,将路径冲突问题转化为整数规划中的容量约束问题,支持对解的存在性与最优性进行形式化分析。文章详述了优先级启发式策略(如路径长度、冲突程度排序)、冲突检测与消解机制,并提供完整的仿真与动画输出功能,便于算法验证与教学演示。; 适合人群:具备一定编程基础和算法知识,从事机器人路径规划、智能交通、自动化调度等相关领域的研究人员、研究生及工程技术人员(尤其适合有MATLAB使用经验者)。; 使用场景及目标:①用于仓储物流、无人机编队、自动驾驶等多智能体系统的路径规划研究与仿真验证;②作为MAPF教学案例,帮助理解优先级规划、冲突消解、Petri网建模等核心概念;③为复杂调度系统开发提供模块化设计参考。; 阅读建议:建议结合文中提供的代码结构与流程图逐步实现各模块功能,重点关注动态边权膨胀与时间同步机制的设计逻辑,可通过调整启发式策略与地图参数进行实验对比,深入理解算法性能与局限性。
【水利工程管理】基于Java+Vue的中小河流治理进度监管与缺陷整改闭环系统设计 项目介绍 基于java+vue的中小河流治理工程进度监管与缺陷整改闭环系统设计与实现(含模型描述及部分示例代码)
内容概要:本文介绍了一个基于Java与Vue技术栈的中小河流治理工程进度监管与缺陷整改闭环系统的设计与实现。系统通过构建工程任务树、进度偏差计算、挣值管理、缺陷风险评分、状态机流程控制及异常识别等模型,实现了对堤防加固、护岸修复、清淤疏浚等多类工程任务的精细化管理。平台支持任务分解、进度跟踪、质量缺陷上报、整改闭环、风险预警和数据分析等功能,打通了施工、监理、建设等多方协作流程,并利用MAT和CSV格式生成模拟数据用于测试与分析,提升了工程管理的数字化、规范化和决策支持能力。; 适合人群:具备Java与Vue开发基础,从事水利工程信息化、智慧建造、项目管理系统开发的软件工程师、系统设计师及工程管理人员。; 使用场景及目标:①实现中小河流治理工程的全过程进度透明化监管,及时识别滞后任务并预警;②建立缺陷从发现到销号的全流程闭环管理,提升整改效率与工程质量;③通过数据沉淀支持后期项目优化、风险预测与管理决策。; 阅读建议:本文含核心模型代码示例(如状态机、挣值计算、风险评分等),建议结合实际业务场景调试运行,深入理解各模型在真实工程管理中的应用逻辑与扩展方式。


网络通信/分布式开发
