2009-11-19 5 views
0

J'ai une fonction qui coûte beaucoup de temps. cette fonction est une requête sql appelée via odbc - non écrite en x ++, car la plage fonctionnelle est insuffisante.axapta thread/animation

Pendant que cette opération est en cours, je souhaite afficher une animation sur un formulaire - défini dans la macro aviFiles. en essayant de réaliser, plusieurs problèmes se produisent:

  • l'animation ne démarre pas avant la fin de la fonction.
  • L'utilisation de threads ne répondra pas à mes attentes, puisque les paramètres ODBC sont définis sur le serveur et je suppose que la fonction est appelée côté client.
  • d'ailleurs - comment puis-je obtenir l'information que la tâche a fini par être piétiné?

quelqu'un pourrait-il me donner un indice, comment

  • jouer une animation sur un formulaire
  • faire quelque chose (en arrière-plan) et continuer à jouer l'animation jusqu'à ce que la tâche à accomplir est terminée
  • arrêter l'animation

codant ce exactement cet ordre montre le comportement mentionné ci-dessus.

merci d'avance pour des conseils et de l'aide!

Répondre

0

Vous pouvez utiliser standard AotFind as an example:

  • diviser le travail en petits morceaux chaque
  • pièce doit être exécuté à la minuterie tique

Vous pouvez également essayer de ne pas utiliser la minuterie, mais appeler infolog.yield() aussi souvent que possible.

0

cela pourrait être fait d'une manière très compliquée avec le dos d'appel et les délégués si votre odbc est dans un projet vs ...

mais n'est pas la vraie solution pour essayer de trouver un moyen plus rapide/plus efficace façon d'interroger vos données?

Questions connexes