Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VB2015] Domanda su Function (o Sub) pubbliche

    Supponiamo (è solo un esempio per intenderci al meglio) che una Soluzione abbia 10 Form tutti attivi, ognuno dei quali ciclicamente (diciamo ogni 2-3 secondi) esegue dei calcoli.

    Supponiamo ora che parte di quei calcoli venga eseguito in una Function pubblica, inserita in un Modulo. Supponiamo altresì che la Function elabori dati complessi, per cui impiega 200/250 millisecondi per restituire il valore che verrà poi elaborato ulteriormente.

    Ciò premesso è facilissimo che mentre la Function viene eseguita da parte di un Form, un altro Form cerchi di chiamarla.

    Ora la domanda... in VB.net c' è un qualche "accorgimento" per cui le chiamate successive vengono "messe in coda" finché la Function non ha restituito il suo valore al Form precedente oppure le chiamate vengono eseguite "tout court" col rischio di falsare qualche valore?

    In altre parole: nel caso specifico si può usare tranquillamente una unica Function pubblica o meglio utilizzare 10 Function private identiche inserite in ciascun Form?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma queste form come chiamano la funzione? In thread diversi o no?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Ma queste form come chiamano la funzione? In thread diversi o no?
    No.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quindi parliamo di timer, o cosa?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Si, ogni Form esegue un particolare (e diverso) controllo con Timer... ma mi pare che la cosa non abbia a che fare con la mia richiesta. Timer, FileSystemWatcher o altro... il problema, se c' è, non cambia.

    La domanda è un altra ed i Form sono solo un esempio: VB.net ha un "controllo interno" che "mette il coda" eventuali chiamate contemporanee da parte di Form diversi ad una stessa Function (o Sub) pubblica finché la chiamata precedente non si è conclusa... si o no?

    Che poi, come detto, la chiamata avvenga a seguito di un evento Timer, FileSystemWatcher o altro mi pare ininfluente.
    Ultima modifica di eziogsv; 16-03-2016 a 17:12

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No, non è ininfluente. Se parliamo di multithreading le problematiche sono diverse.

    E comunque il Timer esegue il delegato su un thread "diverso" dal chiamante (fornito dal sistema) quindi sei in ambito multithreading.

    Per tornare al problema, esistono le primitive di sincronizzazione, ad esempio la

    Classe Mutex
    https://msdn.microsoft.com/it-it/lib...v=vs.110).aspx

    In tutti i casi, bisgonerebbe capire perché la funzione in questione debba essere chiamata in questo modo ... non mi è chiaro il motivo per cui dovresti farlo ... Magari se dai maggiori dettagli ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.