freezes dans le shell avec thread python
Bonjour,
Je viens de me mettre a python il y a pas très longtemps donc je ne connais pas encore très bien ce langage.
Je travail actuellement avec une application qui est commandé a partir d'un shell python. Avec le code qui suit je souhaite actualiser certains modules de cette application tout en gardant la main sur le shell. Pour cela je crée un thread cependant malgré le fait que j'arrive en effet à garder la main sur le shell j'ai des freezes de celui-ci a chaque itération et le pas de temps est donc calibré pour que l'interface soit un minimum utilisable. Voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
#thread d'actualisation des données
class thread(threading.Thread):
def __init__(self, nom = ''):
threading.Thread.__init__(self)
self.nom = nom
self._stopevent = threading.Event( )
self.elapsed_time = 1
def run(self):
self._stopevent.clear()
time_to_elapse = 0
start_global = 0
end_global = 0
while not self._stopevent.isSet():
start_global = time.clock()
_nsis_instance_handle.mfd_inputs_1.ahrs_pitch_angle_value = _nsis_instance_handle.ac_model.pitch
_nsis_instance_handle.mfd_inputs_1.ahrs_true_heading_value = _nsis_instance_handle.ac_model.true_heading
_nsis_instance_handle.mfd_inputs_1.ahrs_true_air_speed_value = _nsis_instance_handle.ac_model.true_airspeed
_nsis_instance_handle.mfd_inputs_1.ahrs_roll_angle_value = _nsis_instance_handle.ac_model.roll
end_global = time.clock()
time_to_elapse = self.elapsed_time - end_global + start_global
if time_to_elapse > 0:
self._stopevent.wait(time_to_elapse)
def stop(self):
self._stopevent.set( ) |
Je voudrais savoir si il y a une possibilité de palier à ce problème comme par exemple lancer la tache en tache de fond sans impacter du tout sur le shell
Merci d'avance.