Also, mein Ziel ist es, eine Funktion in einem anderen Thread zu starten. Außerdem benötige ich Zugriff auf andere vcl-Komponenten von neuem Thread. Hier ist mein Code so weit:Zugriff auf vcl-Komponente im Thread! Delphi
procedure TForm1.StartButtonClick(Sender: TObject);
var
thread1: integer;
id1: longword;
begin
thread1 := beginthread(nil,0,Addr(Tform1.fetchingdata),nil,0,id1);
closehandle(thread1);
end;
procedure TForm1.FetchingData;
var
...
begin
Idhttp1.IOHandler := IdSSLIOHandlerSocketOpenSSL1; //<- error
idhttp1.Request.ContentType := 'application/x-www-form-urlencoded';
mein Programm hängt und ich erhalte Fehler: Ausnahme EAccessViolation in Modul my.exe bei 00154E53. Zugriffsverletzung bei Adresse 00554E53 in Modul 'my.exe'. Lesen Sie von Adresse 00000398.
Vielen Dank im Voraus.
und die einfache Möglichkeit, dies zu erreichen, die sekundären Threads WM_USER Nachrichten veröffentlichen und den Haupt-Thread, um sie zu reagieren. In Ihrem Fall können Sie jedoch den gleichen Effekt erzielen, wenn Sie das indy TidAntiFreeze-Objekt verwenden. Lies 'http: // stackoverflow.com/questions/37185/whats-the-idiomatisch-zu-tun-async-socket-programming-in-delphi' –