Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: bonmario - Ottobre 05, 2015, 10:37:20 am

Titolo: Impostare la priorità di un thread
Inserito da: bonmario - Ottobre 05, 2015, 10:37:20 am
Ciao a tutti,
scusate la domanda scema, ma non ci sto capendo niente.
Ho già letto nel forum inglese che la cosa non ha effetto su Ubuntu, ma la sto provando su Windows XP e non funziona nemmeno lì ....

Allora, all'atto della creazione del thread, ho queste istruzioni:
Codice: [Seleziona]
            
WrkPrior:=Priority;
   Priority:=tpHighest;
WrkPrior:=Priority;

Start;

Se verifico WrkPrior, il suo valore è tpHighest, ma se vado col Task Manager di windows, il thread che sta girando ha priorità normale.

Sono io che sbaglio qualcosa, oppure la priorità di un thread non si può impostare nemmeno su Windows XP?

Grazie in anticipo, Mario
Titolo: Re:Impostare la priorità di un thread
Inserito da: nomorelogic - Ottobre 05, 2015, 03:18:04 pm
hai provato a lanciare il programma come su o administrator?
non mi stupirebbe infatti che un utente normale possa solo abbassare la priorità ma non alzarla
Titolo: Re:Impostare la priorità di un thread
Inserito da: bonmario - Ottobre 05, 2015, 06:24:02 pm
Grazie,
ma avevo analizzato male il problema.
Nel pomeriggio ho installato ProcessExplorer ed ho notato che il thread aveva effettivamente la priorità che gli assegnavo io, ma non era così per l'eseguibile che lancio dal thread stesso.
Ho visto che c'è una proprietà di TProcess che si chiama Priority, ma era tardi. Domani ci provo e spero che mi aiuti a risolvere.

Ciao, Mario
Titolo: Re:Impostare la priorità di un thread
Inserito da: bonmario - Ottobre 06, 2015, 11:56:14 am
Ho visto che c'è una proprietà di TProcess che si chiama Priority, ma era tardi. Domani ci provo e spero che mi aiuti a risolvere.

Il problema era proprio quello. Adesso funziona tutto tranne una cosa:
- se con TProcess lancio un eseguibile, quello ha alta priorità
- se con TProcess lancio un bat e questo lancia un eseguibile, il bat ha alta priorità, ma l'eseguibile l'ha normal.

Credo di avere individuato una possibile soluzione. Se poi funziona la posto.

Ciao, Mario