UWP mise à jour de l'INTERFACE utilisateur de la Tâche
J'ai de l'application, qui est en train de vérifier les plages de réseau (pour l'exécution du service http) dans le réseau local.
Cela signifie donc, que je suis en vérifiant f.e. de 10.0.0.1 à 10.0.0.255. Et là est le problème, lors de l'exécution sur le PC, la vitesse est suffisante, mais lors de l'exécution sur Lumia 950 la vitesse n'est pas assez. Donc, je voudrais mettre à jour l'INTERFACE utilisateur au cours de l'analyse.
Donc voici les questions:
- En ce moment j'ai plusieurs tâches de f.e. 10 - chaque tâche de numérisation de son aire de répartition f.e. tâche 1 - 10.0.0.1 à 10.0.0.25 etc.. - dois-je utiliser 10 tâches ou est-il d'une certaine façon, comment le .net va le résoudre lui-même? Quel sera le rendement, f.e. si je vais utiliser 50 tâches?
- Deuxième question est la suivante, au cours de l'analyse, je vais trouver le PC, où le service web fonctionne, mais... Comment dois-je mettre à jour l'INTERFACE utilisateur lorsque le PC est-il trouvé? En ce moment, je suis seulement capable de le faire, lorsque toutes les tâches sont terminées..
Les méthodes que j'appelle sont asynchrones Tâches
OriginalL'auteur petrtim | 2016-07-01
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser autant de tâches que vous souhaitez, le système va automatiquement effectuer les files d'attente et d'exécution pour vous. C'est l'un des avantages de l'utilisation de mécanismes intégrés
Pour exécuter du code sur le thread de l'INTERFACE utilisateur, vous pouvez utiliser le répartiteur comme ceci:
Heureux d'entendre cela a aidé. Vous pourriez envisager de marquage ce en tant que réponse il est donc facilement découvert par d'autres. Pour l'autre exigence, qui devrait être une question distincte. Essayez et fournir des exemples de code de ce que vous avez essayé de sorte que les gens de savoir où commencer à fournir une réponse.
Répartiteur n'a pas de méthode RunAsync?
Comment voulez-vous prévenir: “Le nom répartiteur n'existe pas dans le contexte actuel” ?
Vous devriez écrire de la Fenêtre.Actuel.Répartiteur.RunAsync(Windows.L'INTERFACE utilisateur.De base.CoreDispatcherPriority.Haut, () = > {});
OriginalL'auteur AlexDrenea
D'exécuter du code sur le thread d'INTERFACE utilisateur et que vous souhaitez uniquement mettre à jour la propriété .Vous pouvez utiliser MVVM et le ViewModel de l'héritage de la classe
Et tous les biens de la Xaml lier l'utilisation unidirectionnelle ou bidirectionnelle et dans l'utilisation des biens OnPropertyChanged(); Et si le temps mon code expception et dire que
Current is null
Vous pouvez utiliser
Si vous avez écrit le code dans le contrôle de l'utilisateur ou une page que vous pouvez voir le code ci-dessous.
La CoreDispatcherPriority pouvez définir la Priorité, mais vous ne devriez pas régler à Haute ,voir CoreDispatcherPriority
Si vous liez,il est mis à jour.Il y a certains ,je n'ai pas le lien.
Ainsi, à la fin, j'ai utilisé cette solution et cela a fonctionné lien
Si vous faites le changement de propriété ,et de votre INTERFACE utilisateur ont pas changé.Ainsi, à la fin vous devriez également utiliser le code comme moi.Le lien(c-sharpcorner.com/UploadFile/5ef5aa/...) peut modifier la liste, mais pas la propriété.
Oui, mais dans mon cas, la propriété est List<string> afin de l'événement si quelque chose va être ajouté à la liste ne sera pas déclenché..
OriginalL'auteur lindexi
J'ai aussi trouvé une autre possibilité comment mettre à jour l'INTERFACE utilisateur en ce moment, je mets à jour la barre de progression de cette manière, mais trouvée, vous pouvez passer d'autres variables..
événement:
Méthode avec parametrs:
Appel:
OriginalL'auteur petrtim