Sto creando un'applicazione Blazor con un'API REST e un'interfaccia Web. Avrò anche una parte di monitoraggio dell'applicazione che eseguirà il polling dei dati ogni secondo da molte origini dati diverse. Ho creato un thread di lunga durata in una classe separata che esegue semplicemente il polling dei dati che desidero e sembra funzionare correttamente. Il modello di applicazione che sto utilizzando è un'applicazione server ASP.NET Blazor. Semplicemente così:
m_pollThread = new Thread(new ThreadStart(PollThread))
{
IsBackground = true
};
m_pollThread.Start();
Quello che mi chiedo ora è: è completamente sbagliato rispetto ai modelli di programmazione inserire questo tipo di thread di polling all'interno dell'applicazione Blazor stessa? C'è qualche problema in questo modo che si ritorcerà contro in seguito (consumo di memoria, prestazioni del resto dell'applicazione)? Il motivo per cui lo chiedo è perché per quanto ne so, le applicazioni Blazor e ASP.NET Core sono generali "su richiesta" e si sveglia quando viene richiesto qualcosa e non eseguono attività di polling infinite di lunga durata. Non so se potrei eseguirlo all'interno di IIS, ad esempio.
è completamente sbagliato rispetto ai modelli di programmazione inserire questo tipo di thread di polling all'interno dell'applicazione Blazor stessa?
Sì. Non si romperà immediatamente ma sta chiedendo guai.
La soluzione è semplice, ASP.NET core consente di eseguire più thread host molto facilmente .
Il nuovo modello di lavoro è probabilmente il modo preferito ora, ma tutto ciò di cui hai veramente bisogno è
class MyPollingService : BackgroundService { ... }
e
services.AddHostedService<MyPollingService>();
Il tuo vantaggio è una migliore integrazione con il framework e un maggiore controllo su Start e Stop, ecc.
Ho costruito qualcosa di simile per il test della pressione della pipeline e ho utilizzato solo un timer per leggere tutti i nostri dispositivi nel test.
Non posso pubblicare la classe perché appartiene al mio ultimo cliente, ma fondamentalmente ho impostato un timer per l'esecuzione ogni 30 secondi (30000 millisecondi), quindi è garantito che ne esegua almeno uno in un minuto con questo codice:
public int Minute { get; set; }
public bool NewMinute
{
get
{
// initial value
bool newMinute = DateTime.Now.Minute != this.Minute;
// return value
return newMinute;
}
}
Quindi nel mio evento tick del timer, faccio un controllo
if (NewMinute)
{
// store so I don't send again till the next minute
Minute = DateTime.Now.Minute;
// Get all temperature values
GetTemperatureValues();
}
Nel mio metodo GetTemperatureValues, richiamo alcune librerie seriali e ottengo un valore indietro o se non ricevo una risposta entro 5 secondi, salta.
Non sono sicuro che questo ti dia una guida, ma ha funzionato per dove lavoravo io, tranne per il fatto che hanno acquistato i dispositivi più economici e hanno fallito troppo spesso, ma non il codice.
Ora tutto questo è stato fatto in Windows Form, Blazor è un animale diverso. Puoi utilizzare i timer in Blazor come faccio io nel mio componente Sprite per animarlo, e in questo pacchetto Nuget e progetto di esempio è inclusa un'interfaccia per abbonati:
https://github.com/DataJuggler/DataJuggler.Blazor.Components
Ed ecco un video che lo accompagna se sei annoiato: https://youtu.be/frtetHgfdIo

Jana Duggar è stata aperta sulla sua ricerca dell'amore. Ecco tutto ciò che ha detto sull'argomento e sulla sua finestra di cinque anni per il matrimonio.
La star di 'Outlander' Sam Heughan ha recentemente rivelato cosa prenderà dal set per ricordare Jamie Fraser, il ruolo che lo ha reso una star.
"She Loves You" è stata scritta in un'ora, registrata in un giorno ed è stata la canzone dei Beatles con una delle loro migliori performance della loro carriera.
Dolly Parton e sua nonna Bessie avevano un rapporto speciale. Nonna Parton era molto malata, ma questo non ha impedito a Dolly di farle uno scherzo.
Si potrebbe pensare che la quercia o il noce americano siano resistenti, ma quando si tratta del legno più duro del mondo, non si avvicinano nemmeno.
L'oceano è pieno di bellezza, ma nasconde anche alcune delle creature marine più spaventose del pianeta. Molti di questi animali si nascondono molto al di sotto della superficie dell'oceano, nel mondo oscuro e ad alta pressione delle profondità marine.
Se stai combattendo contro nemici ostili o ti stai preparando per scenari PvP, conoscere i migliori incantesimi per le spade offerti da Minecraft può darti un vantaggio notevole. Incantare le spade ti permette di infliggere più danni, aumentare il numero di nemici che cadono e aumentare la durata della tua spada.
Quando si parla di paesi socialisti, spesso si immagina un sistema con il pieno controllo del governo e nessuna proprietà privata. Ma nella pratica, le economie socialiste variano notevolmente.
“Children” presenta un cameo di un grande nome e alcune notizie devastanti
Si dice che questo RAV4 sia in condizioni eccellenti ed è pronto per il gioco delle sedie musicali.
Le riprese dei droni hanno ripreso i vigili del fuoco che sembravano lottare per spegnere l'incendio.
Eyes of Wakanda si collega direttamente al MCU, oltre ad aggiornamenti su X-Men '97, What If..., Daredevil e altro ancora.
Il caporedattore di lunga data, entrato a far parte di Vogue America nel 1988, ha annunciato la notizia in una riunione dello staff la mattina di giovedì 26 giugno.
Ava Gardner avrebbe dovuto sposarsi con Mickey Rooney e Frank Sintra, e frequentare diverse altre star di Hollywood. Ecco uno sguardo alla storia sentimentale di Ava Gardner.
John Cleese ha sposato sua moglie, Jennifer Wade, nel 2012. Ecco tutto quello che c'è da sapere sulla moglie di John Cleese, Jennifer Wade.
Dev Patel ha incontrato la sua ragazza nel 2016 sul set di "Hotel Mumbai". Ecco tutto quello che c'è da sapere su Tilda Cobham-Hervey.
Mi colpisce Improvvisamente come spesso accade È di nuovo la via di mezzo <No, non quello nel pacifico tu marrone, quello al carnevale> Ogni titolo a voce alta…..
Nel 2022, con il rilascio di GPT-3, l'abilità di scrittura sembra diventare meno importante. Con l'intelligenza artificiale, anche le persone con una scrittura scadente possono generare personale di qualità.
Nel mondo frenetico e competitivo di oggi, la propria carriera gioca un ruolo significativo nella crescita personale, nella stabilità finanziaria e nella soddisfazione generale della vita. Tuttavia, molte persone si trovano intrappolate in un ciclo inesorabile di stagnazione e insoddisfazione, che si esauriscono gradualmente nella loro vita professionale.
La scorsa settimana ho notato un comunicato stampa, inviato tramite PressGazette (un sito Web di notizie sui media britannici). L'articolo annunciava che Acast, la società di hosting e pubblicità di podcast di Scandi, avrebbe guidato un consorzio di editori "probabilmente i più influenti" nel podcasting.