Замените код на такой
procedure TForm1.WebBrowser1DidStartLoad(ASender: TObject);
var
aThread: TThread;
begin
aThread := TThread.CreateAnonymousThread(
procedure
begin
TThread.Synchronize(nil,
procedure
begin
If CheckBox1.IsChecked Then
Image1.Bitmap := WebBrowser1.MakeScreenshot;
end)
end);
aThread.FreeOnTerminate := true;
aThread.Start;
end;
и однобокая.
Далеко не всегда есть необходимость парсить гигабайтные джейсоны. Чаще (имхо) бывает нужно обработать много достаточно маленьких, но с какой-нибудь структурой а-ля "массив объектов в объекте, который в...". Или быстро сформировать свой (много своих). И вот тут картина может поменяться.