Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

función SetThreadPriority

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: función SetThreadPriority Responder citando

Tengo un problema con la función SetThreadPriority, estoy intentando cambiar la prioridad de una thread, he probado mediante esta función directamente y siempre devuelve 0 (error) al ejecutarla.

Asi que he probado a suspender primero el thread, cambiar la prioridad y reanudar la ejecución del thread, pero el resultado es el mismo...¿Alguien sabe si tiene truco esta función?

el código que usé es el siguiente donde "InputObj" es el thread en cuestión:

InputObj->Suspend();
SetThreadPriotity(InputObj,THREAD_PRIORITY_HIGHEST);
InputObj->Resume();

Agradecería cualquier sugerencia Laughing , gracias por adelantado
Volver arriba
Mensaje    Asunto: Responder citando

Si estas usando la clase TThread puedes cambiar la prioridad así:

    // TuThread->Priority = ...
    InputObj->Priority = tpHighest;

y si quieres usar la función del API que estas usando fíjate que pide el HANDLE y no puntero:

    SetThreadPriority(
            reinterpret_cast<HANDLE>(InputObj->Handle),
            THREAD_PRIORITY_HIGHEST );
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Verdura de la buena!, gracias Leo, he probado con las dos versiones que me comentas y las dos van bien, así que creo que voy a usar la de InputObj->Priority directamente.

¿Sabes si alguna se ejecuta en menor tiempo que la otra?
Volver arriba
Mensaje    Asunto: Responder citando

La propiedad esa lo que hace es llamar a la función del API. Este es el código fuente original de Borland para esa propiedad:

Código:
property Priority: Integer read GetPriority write SetPriority;

procedure TThread.SetPriority(Value: TThreadPriority);
begin
  CheckThreadError(SetThreadPriority(FHandle, Priorities[Value]));
end;
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.