Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 13 su 13

Discussione: threads e eventi

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    ricapitolando , ho due tip di task gli added che sono completamente indipendenti e i deleted che vanno eseguiti dopo gli added.
    Ho anche un indice che mi dice in che ordine vanno eseguiti i task e questo è indipendente, uso un hashset?
    il problema è che gli added sono realmente indipendenti i deleted devono aspettare che gli added con gli indici precedenti siano eseguiti.
    io non vorrei usare il task.WaitAll ed eseguire i task uno per volta perchè mi blocca anche la gestione degli eventi che continuano ad arrivare e non so come aspettare che il task esegua il suo lavoro (venga lanciato) prima che i task precedenti nell ordine siano stati eseguiti.
    Ho visto che i task hanno una proprieta iscompleted al limite si puo usare quella ma prima chiedo per non cadere in errori da principiante quale sono.
    alla fine la soluzione migliore è usare un timer? come mi avevi consigliato? o posso eseguire i task in parallelo in qualche maniera?
    grazie e scusa per le precisazioni

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    57
    chiaramente ci sono diverse soluzioni a dipendenza di cosa tu voglia ottenere,
    ora non ho capito esattamente la tua problematica, i task che eliminano cosa eliminano? non credo ti riferisca ai dati appena aggiunti, altrimenti non avrebbe senso aggiungerli...

    inoltre il senso del task timer detto precedentemente, era un modo per svuotare ogni "tot" il buffer di dati raccolti sino a quel momento, quindi eseguire le query di inserimento dei dati presenti nel buffer (detta sincronizzazione).

    chiaramente usando il WaitAll od un derivato tu impedisci l'esecuzione del task proprietario fino al completamento dell'eventuale altro.

    mentre se la tua procedura è sempre, dopo un inserimento avviene un eliminazione, allora a quel punto ti conviene usare un unico task che faccia entrambe le cose in maniera sequenziale.

    dato che da quel che capisco fai molti accessi multipli al database, assicurati che questo sia in grado di gestirli e protegga accessi concorrenti a stessi dati o tabelle, altrimenti potresti incorrere in eventuali inconsistenze di dati.

    comunque se riesci a spiegare in modo più preciso e pulito la sequenza delle azioni del tuo applicativo provo ad aiutarti maggiormente.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    guarda sei stato gentilissimo non voglio abusare ancora della tua bonta solo grazie.
    Ho risolto con delle funzioni asincrone in un loop che inseriscono in modo asincrono i dati sul db i dati arrivano da un evento e sono mmessi in una concurrent queque proprio a queste nel ciclo infinito prendo i dati e chiamo delle funzioni asincrone che inseriscono i dati sul db.
    io non uso le funzioni asincrtone per guadagnare velocita , infatti di ogni funzione asincrona aspetto la terminazione ma con waitany non mi ricordo come si chiama ma aspetta lasciando la possibilita di accettare altri eventi.
    ancora grazie ciao.

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.