高分求解Delphi多线程编程
发布网友
发布时间:2022-05-18 22:59
我来回答
共2个回答
热心网友
时间:2023-11-18 04:03
定义一个全局变量 i 定义一个定时器 Timer 间隔时间设置为20秒
注意在 递增变量的时候 一定要加锁 防止两个线程同时递增这个变量
声明一个临界区变量 L:TRTLCriticalSection
程序创建时 初始化临界区变量 InitializeCriticalSection(L)
递增i时:锁住临界区
EnterCriticalSection(L);//进入临界区
inc(i)
LeaveCriticalSection(L);//退出临界区
程序结束时 删除临界区变量
DeleteCriticalSection(L)
timer在20秒的时候检测i的值就可以了
临界区变量保证在enter和leave之间的代码同时只能有一个线程访问
防止了变量访问的冲突
热心网友
时间:2023-11-18 04:03
定义两个全局变量,一个时间,一个次数,在线程中增加时间判断,如果是第一次执行(次说为0)那么为时间变量赋初始值,如果不是第一次执行(次数大于0),那么判断时间,如果大于20秒停止程序。