A while ago, I got reminded of a few occurrences of Delphi apps hanging after a little less than 2 months of being active.
It does not happen that often, as usually Patch Tuesday requires a reboot, but sometimes it doesn’t, or ops forgot to patch the affected machine.
The common thing for these hanging apps was that they all used the System.Threading
unit (introduced in Delphi XE7). That unit relied on [Wayback] TThread.GetTickcount
(added in Delphi XE3 in the System.Classes
unit) which uses a 32-bit unsigned [Archive.is] cardinal
value as it relied on the Windows API [Wayback] GetTickCount function which in turn has this remark: