×

criticalsection section delphi

criticalsection(delphi XE4多线程critical section问题)

admin admin 发表于2023-05-08 08:59:50 浏览39 评论0

抢沙发发表评论

本文目录

delphi XE4多线程critical section问题

无法给你代码,别急,越急越解决不了问题,找本书研究下线程,现在你的上述逻辑有问题。
按你的意思,2个线程同时工作的话逻辑应该是:线程1做完了,线程1应该就要等待,然后线程2做,线程2做完了,就等待,线程1做。
在线程1做完了就关掉(就是线程1做完了,线程1等待),在Execute里面写FreeOnTerminate:=True,在Thread1Done里面启动线程2,线程2的Thread2Done里面启动线程1.循环。。。。临界区都不要。
逻辑才不会乱,你现在用一个Execute函数(当然是一个) 用一个ThreadDone 。。当然各种阴差阳错。
//leaveCriticalSection写到Thread1Done 和 Thread2Done 里面去。

CriticalSection这样用哪里错了

static CRITICAL_SECTION lps; 是静态变量,只需要初始化一次;
不能放在sample 的构造函数里面初始化。
你定义一个静态函数来初始化它,然后一个静态函数来删除它。