Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: xinyiman - Dicembre 23, 2012, 10:25:54 pm

Titolo: Sono sconcertato
Inserito da: xinyiman - Dicembre 23, 2012, 10:25:54 pm
Ciao ragazzi, non riesco a capire una cosa.

Quando eseguo questo codice sul while mi esce dalla procedura. Non prosegue neanche ad eseguire i passaggi successivi, mentre se tolgo il not lui passa all'istruzione successiva. Vi avverto che questo mio software usa 2 thread secondari. Qualcuno sa dirmi perchè?!

  appoggio:=SonoUscitoDalCicloLetturaFile;
  while not (appoggio) do
  begin
       Sleep(1000);
  end;
Titolo: Re:Sono sconcertato
Inserito da: Stilgar - Dicembre 23, 2012, 10:54:43 pm
Immagino che la "SonoUscitoDalCicloLetturaFile" sia una funzione non rientrante, a dispetto dell'uso dei thread, per cui sincrona.
Dimandina bastarda, lo Sleep, non ti ha mai dato rogne vero?
Da quello che ho capito è lo sleep che ti sta incasinando la vita, ma magari leggo male quello che ti sta succedendo....

Stilgar
Titolo: Re:Sono sconcertato
Inserito da: Narciso - Dicembre 24, 2012, 07:06:39 am
Non so se è troppo banale ma secondo me.... dovresti mettere...


  while not (appoggio) do
  begin
       appoggio:=SonoUscitoDalCicloLetturaFile;
       Sleep(1000);
  end;

se invece l'istruzione che restitusce appoggio e' fuori dal ciclo

  while not (appoggio) do
  begin
       application.processmessages;
       Sleep(1000);
  end;
Titolo: Re:Sono sconcertato
Inserito da: xinyiman - Dicembre 24, 2012, 06:12:23 pm
In questo caso non è lo sleep perchè se lo commento e scrivo altro ho lo stesso problema, si pianta sulla riga del while
Titolo: Re:Sono sconcertato
Inserito da: Stilgar - Dicembre 25, 2012, 12:08:16 am
Committa il codice in source forge, in questo modo posso scaricare il progetto e fare qualche prova (sempre che non sia un progetto di lavoro, con tutti i casini che comporta dal punto di vista privacy e menate simili).
Anche fare uno sleep ad cazum senza le tue impostazioni di progetto non avrebbe senso come risposta.

Stilgar
Titolo: Re:Sono sconcertato
Inserito da: xinyiman - Dicembre 26, 2012, 01:57:56 pm
ho cambiato da while...do a repeat...until e sembra funzionare. faccio altri test e vi dico