CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

C# Surveiller une variable

Pseudo supprimé
Pseudo supprimé 20 décembre 2020 à 15:12:26

Bonjour,

Désolé pour ce piètre titre mais je n'arrive pas à trouver les bons mot clefs :(

J'aimerai créer une boucle qui tourne H24 toutes les 1 min pour surveiller une variable précise.

Si cette variable change, j'aimerai effectuer une action puis retourner dans cette boucle pour de nouveau surveiller cette variable.

Je suppose qu'il existe quelque chose dans le genre de prévu dans l'environnement C# pour effectuer faire ça, auriez-vous une piste ?

Je doute que la bonne méthode soit de bêtement effectuer une boucle while... non ?

car si je fais une boucle while, au bout d'un moment la mémoire utilisé de la machine va augmenter petit à petit, non ?

Merci pour votre aide !

Message édité le 20 décembre 2020 à 15:17:06 par Pseudo supprimé
PrepaDesco
PrepaDesco
Niveau 28
20 décembre 2020 à 15:43:51

Tu peux pas juste faire un évènement ?

Pseudo supprimé
Pseudo supprimé 20 décembre 2020 à 15:58:57

Le 20 décembre 2020 à 15:43:51 PrepaDesco a écrit :
Tu peux pas juste faire un évènement ?

Je suis débutant, je vais regarder ce qu'est un évènement :oui:

xidi87
xidi87
Niveau 8
20 décembre 2020 à 16:17:04

Tu n'as pas besoin de faire ce genre de choses à la main.

Regarde le design pattern Observer. Les principaux langages l'implémentent et c'est assez facile à utiliser.
Pour C# : https://docs.microsoft.com/fr-fr/dotnet/standard/events/observer-design-pattern

Message édité le 20 décembre 2020 à 16:19:15 par xidi87
godrik
godrik
Niveau 30
20 décembre 2020 à 17:39:20

elle est ou cette variable?

Pseudo supprimé
Pseudo supprimé 20 décembre 2020 à 18:03:19

Le 20 décembre 2020 à 16:17:04 xidi87 a écrit :
Tu n'as pas besoin de faire ce genre de choses à la main.

Regarde le design pattern Observer. Les principaux langages l'implémentent et c'est assez facile à utiliser.
Pour C# : https://docs.microsoft.com/fr-fr/dotnet/standard/events/observer-design-pattern

Je vais check ça aussi également merci

Le 20 décembre 2020 à 17:39:20 godrik a écrit :
elle est ou cette variable?

dans mon main, elle provient d'une api

en bref je veux écouter un get d'une api toutes les minutes et si j'ai une donnée intéressante dans cette variable alors je l'enregistre dans ma base de données et je retourne écouter la variable ensuite

je sais pas si je suis clair, désolé :(

Message édité le 20 décembre 2020 à 18:03:47 par Pseudo supprimé
Pathos-II
Pathos-II
Niveau 22
20 décembre 2020 à 19:08:41

Pourquoi pas mettre un point d'arrêt et te mettre en mode debug ?
Tu as même la possibilité de mettre des point d'arrêt conditionnel si tu veux seulement t'arrêter quand elle a une valeur précise :ok:

Message édité le 20 décembre 2020 à 19:09:49 par Pathos-II
boucif
boucif
Niveau 24
20 décembre 2020 à 19:24:28

En faite tu veux faire des appel d’api et stocker l’info quand elle change, du genre récupérer un prix toutes les x minutes
Tu peux utiliser un timer pour ça, si c’est du web (asp) tu as les taches d’arrière plan.

Bunyan
Bunyan
Niveau 17
20 décembre 2020 à 20:11:27

Et voici une bonne illustration de comment, en demandant un conseil technique très précis, on obtient un gros flou car il manque le "pourquoi faire ça ?" :)

Si tu veux réagir à un changement de valeur (ou une valeur précise) dans ton propre programme, ce n'est pas la même chose qu'y réagir suivant un appel WS, ni la même chose que sur une page web.

Je te conseille donc d'indiquer pourquoi souhaites-tu "surveiller une variable", car ce n'est pas forcément la bonne solution à ton besoin. Si c'est bien le cas, nous fournir plus de contexte nous permettra de t'aiguiller sur des solutions & implémentations plus correctes et répondant à ton besoin :)

Pseudo supprimé
Pseudo supprimé 20 décembre 2020 à 21:59:54

Le 20 décembre 2020 à 20:11:27 Bunyan a écrit :
Et voici une bonne illustration de comment, en demandant un conseil technique très précis, on obtient un gros flou car il manque le "pourquoi faire ça ?" :)

Si tu veux réagir à un changement de valeur (ou une valeur précise) dans ton propre programme, ce n'est pas la même chose qu'y réagir suivant un appel WS, ni la même chose que sur une page web.

Je te conseille donc d'indiquer pourquoi souhaites-tu "surveiller une variable", car ce n'est pas forcément la bonne solution à ton besoin. Si c'est bien le cas, nous fournir plus de contexte nous permettra de t'aiguiller sur des solutions & implémentations plus correctes et répondant à ton besoin :)

+1

Pseudo supprimé
Pseudo supprimé 20 décembre 2020 à 22:33:52

Le 20 décembre 2020 à 20:11:27 Bunyan a écrit :
Et voici une bonne illustration de comment, en demandant un conseil technique très précis, on obtient un gros flou car il manque le "pourquoi faire ça ?" :)

Si tu veux réagir à un changement de valeur (ou une valeur précise) dans ton propre programme, ce n'est pas la même chose qu'y réagir suivant un appel WS, ni la même chose que sur une page web.

Je te conseille donc d'indiquer pourquoi souhaites-tu "surveiller une variable", car ce n'est pas forcément la bonne solution à ton besoin. Si c'est bien le cas, nous fournir plus de contexte nous permettra de t'aiguiller sur des solutions & implémentations plus correctes et répondant à ton besoin :)

Car justement je ne sais pas comment expliquer mon problème de manière précise, sinon google m'aurait déjà aider.

Imaginons que j'ai une api qui me renvoi un nombre. Disons le prix d'un article sur un site, ce site a une api permettant de venir le lire le prix de chaque article. Les prix des articles fluctuent toutes les minutes.

Donc je fais un appel api en boucle pour venir nourrir ma variable et dès que j'ai un prix qui me semble intéressant, hop je l'enregistre dans ma base de données et je retourne surveiller ma variable. (Toutes les minutes je fais un appel API en gros).

Le résultat : J'aurai la date précise (heure, minute etc) de quand mon article aura été le plus bas. C'est un exemple.

Je précise que c'est une appli console C# et que j'ai encore rien commencer à faire. J'essaye de comprendre comment je vais faire d'abord. :ok:

Car j'imagine que si je fais une boucle énorme avec une condition qui fini dans très longtemps, je vais peut-être utiliser trop de mémoire... ?

Message édité le 20 décembre 2020 à 22:38:49 par Pseudo supprimé
boucif
boucif
Niveau 24
20 décembre 2020 à 22:39:27

Je t'ai répondu classe timer
https://docs.microsoft.com/fr-fr/dotnet/api/system.timers.timer?view=net-5.0
pour l'appel d'api http client
https://docs.microsoft.com/fr-fr/dotnet/api/system.net.http.httpclient?view=net-5.0
https://docs.microsoft.com/fr-fr/aspnet/web-api/overview/advanced/calling-a-web-api-from-a-net-client

si t'as pas dapi et tu veux parser de l'html
https://html-agility-pack.net/

Pseudo supprimé
Pseudo supprimé 20 décembre 2020 à 22:49:43

Le 20 décembre 2020 à 22:39:27 boucif a écrit :
Je t'ai répondu classe timer
https://docs.microsoft.com/fr-fr/dotnet/api/system.timers.timer?view=net-5.0
pour l'appel d'api http client
https://docs.microsoft.com/fr-fr/dotnet/api/system.net.http.httpclient?view=net-5.0
https://docs.microsoft.com/fr-fr/aspnet/web-api/overview/advanced/calling-a-web-api-from-a-net-client

si t'as pas dapi et tu veux parser de l'html
https://html-agility-pack.net/

Je vais me pencher sur le class timer, cimer :ok: Je commencerais demain.

Tout le reste je n'ai pas besoin, l'api provient du site en question. J'ai juste à l'installer et à écrire une ligne de code pour avoir ce que je veux :oui:

boucif
boucif
Niveau 24
20 décembre 2020 à 23:05:44

Tu veux dire qu’il te fournit la bibliothèque c’est quoi un bloom?

Pseudo supprimé
Pseudo supprimé 20 décembre 2020 à 23:41:00

Le 20 décembre 2020 à 23:05:44 boucif a écrit :
Tu veux dire qu’il te fournit la bibliothèque c’est quoi un bloom?

Oui c'est une api publique. Pas compris ta 2ème question :(

Chocolayte
Chocolayte
Niveau 73
22 décembre 2020 à 20:58:57

Un évènement t'aurait été utile si c'était une variable dans ton propre programme. Dans ton cas, il te faut un Timer oui, tout simplement.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment