Je développe une application cacao qui télécharge le firmware sur l'appareil. La progression du téléchargement est affichée à l'aide de NSProgressIndicator. J'appelle la méthode -incrementBy:
de NSProgressIndicator après la méthode DeviceRequestTO dans une boucle while. Mais l'indicateur de progression n'est mis à jour qu'une fois que le microprogramme entier a été écrit sur l'appareil. Il montre 100% d'achèvement en une seule fois. J'ai donc ajouté la méthode -displayIfNeeded
de la classe NSView. Maintenant, il montre des progrès en douceur, mais cela se produit aussi une fois le téléchargement du firmware est terminé. Comment puis-je obtenir l'indication de progression et l'opération d'écriture simultanément?Mise à jour de l'indicateur de progression lors du téléchargement du firmware sur l'appareil
Voici le code:
while(1)
{
int result = (*dev)->DeviceRequestTO(dev, &request);
printf("\nBlocks Written Successfully: %d",DfuBlockCnt);
[refToSelf performSelectorOnMainThread:@selector(notifyContent)
withObject:nil
waitUntilDone:NO];
}
//In main thread
- (void)notifyContent{
[dnldIndicator incrementBy:1];
[self displayIfNeeded];
}
Cette méthode est-elle dans un thread séparé? Si c'est le cas, vous devez mettre à jour l'interface utilisateur à l'aide de -performSelectorOnMainThread: pouvez-vous publier votre code? –