Originariamente inviato da alka
Non puoi condividere gli stessi oggetti tra più thread a meno che questi non siano
thread-safe, e non lo sono, oppure proteggendone l'accesso con elementi di sincronizzazione (
critical section,
mutex, ecc.).
Questa è senz'altro un'area in cui bisogna intervenire.
Risolta questa, puoi passare ad analizzare altri problemi.
Ok allora provo a modificare questo, cmq quando creo i thread gli passo gli oggetti SQLQuery per variabile:
codice:
var
qry,qry1,qry2,qry3,qry4,qry5,qry6,qry7,qry8:TADOQuery;
dbconnect1,dbconnect:TADOConnection;
procedure TMain.avviaThread;
begin
qry.connection:=dbconnect;
qry1.connection:=dbconnect;
qry2.connection:=dbconnect;
qry3.connection:=dbconnect1;
qry4.connection:=dbconnect1;
qry5.connection:=dbconnect1;
qry6.connection:=dbconnect;
qry7.connection:=dbconnect;
qry8.connection:=dbconnect;
dbconnect.connected:=true;
dbconnect1.connected:=true;
ThreadUno:=TThreadUno.create(qry,qry1,qry2,dbconnect,tpnormal);
ThreadDue=TThreadUno.create(qry3,qry4,qry5,dbconnect1,tpnormal,);
ThreadTre:=TThreadTre.create(qry6,qry7,qry8,tpnormal);
end;
E' sbagliato?