Question

Dans l'application sur laquelle je travaille, j'essayais d'utiliser SaveFileDialog et OpenFileDialog à leurs fins habituelles (enregistrement et ouverture de fichiers.)

Toutefois, l’application ne peut pas prendre en charge les formulaires / dialogues modaux sans se bloquer, car trop de choses urgentes se produisent sur le thread propriétaire de l’UI.

Réécrire l’application pour déplacer ces fonctionnalités hors du fil propriétaire de l’UI n’est pas pratique dans l’immédiat. Pour terminer la fonctionnalité sur laquelle j'ai travaillé, j'ai besoin d'un substitut pour les deux boîtes de dialogue de fichier, de préférence un contrôle pouvant vivre sur un formulaire non modal.

Puis-je utiliser quelque chose qui ne bloque pas mon thread propriétaire de l'interface utilisateur?

Était-ce utile?

La solution

La seule option disponible que je connaisse est le Dialog Workshop.NET , un produit commercial. Ils ont un ensemble de dialogues qui ont la possibilité d’être non modaux (ou directement incorporés dans un formulaire Windows au lieu d’une fenêtre séparée).

Cependant, je penserais vraiment à essayer de déplacer votre logique sensible au temps dans un thread séparé, à la place. Avoir une boîte de dialogue non modale sera potentiellement une source de confusion pour les utilisateurs, car elle ne se comportera pas comme une boîte de dialogue de fichier est supposée se comporter. Une interface utilisateur non bloquable peut également avoir d'autres conséquences.

Autres conseils

  

trop de choses sensibles au facteur temps se produisent sur le fil qui possède l'interface utilisateur.

C'est votre vrai problème. .Net dispose d’un support multi-thread très robuste. Je vous suggère de déplacer ces choses ailleurs, aussi désagréable que cela puisse paraître. C’est probablement moins de travail que de réimplémenter les boîtes de dialogue Ouvrir / Enregistrer et ce sera certainement moins pour votre application à long terme.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top