Quelque part dans le code, un waitHandle est utilisé pour effectuer certaines actions. Cependant, la chose avec waithandle est que le formulaire se fige en attendant que l'action se termine. Ainsi, le code suivant ne fonctionnerait pas:Comment afficher la barre de progression si waithandle est utilisé
frmProgressBar.show();
int successOrFail = PerformSynchronousActionUsingWaitHandle();
frmProgressBar.close();
frmMainScreen.show();
Il ne fonctionnera pas, car le frmProgressBar serait gelé à la place. J'ai vraiment besoin de garder la ligne # 1, la ligne # 3 et la ligne # 4, mais comment réécrire PerformSynchronousActionUsingWaitHandle() de sorte que l'opération soit toujours synchrone mais la barre de progression est affichée. Je pourrais peut-être contourner cela en montrant la barre de progression sur un fil différent, mais la conception du système est telle que ce serait très désordonné. Vous ne pouvez pas utiliser la classe BackgroundWorker?
Il y a un problème. PerformSynchronousActionUsingWaitHandle() est supposé renvoyer un code d'erreur. Et dans ce cas, StartClick() est censé retourner ce code d'erreur. Ainsi, StartClick() doit attendre que PerformSynchronousActionUsingWaitHandle() se termine avant de retourner. –
@Hao Wooi Lim - vous pouvez personnaliser un argument args pour ramener n'importe quel résultat. J'ai ajouté ceci au code ci-dessus. – Hath