Sto cercando di trovare un modo per mantenere una traccia sui compiti asincroni flusso di esecuzione in un modo che sarebbe stato facile capire quanto riguarda compito, qual è stato il flusso originale che ha avviato esso.Monitoraggio C# /. NET compiti flusso
mi serve principalmente per la registrazione, il debugging e conservando una sorta di stack per uno specifico flusso di esecuzione.
per esempio: se ho server con molti clienti provenienti da più indirizzi IP e la necessità di server per eseguire un flusso di lavoro per ogni cliente che coinvolge molte azioni asincrone quindi coinvolge molti compiti diversi per ogni flusso di esecuzione; la registrazione di un tale flusso è difficile, specialmente quando si utilizza il meccanismo asincrono/attesa.
Non ho trovato un modo per racchiudere le attività in un modo che per ogni attività eseguita conoscerei la descrizione del flusso iniziale durante la registrazione, ad esempio se avvio un nuovo flusso di attività per un'azione con descrizione - "Manutenzione del cliente 10.0.3.4" Voglio essere in grado di aggiungere questa descrizione per ogni voce di registro che esce da questo flusso in tutta l'operazione che ha creato da essa.
Quando si utilizzano le discussioni solo la sua facile perché avete variabili statiche filo. con compiti è impossibile ... Ho anche cercato di creare il mio task scheduler che vi avvolgerà qualsiasi operazione che lo utilizza (anche quando si utilizza async/attendere metodi), ma ha ottenuto in un vicolo cieco perché la base task scheduler a volte utilizza nuovo thread (anche se non vi era alcuna richiesta implicita di utilizzare un nuovo thread) - il metodo "TryExecuteTaskInline" può talvolta essere eseguito in un nuovo thread.
Qualsiasi idea o suggerimento su come posso raggiungere questo obiettivo?
Che ne dici di mostrarci del codice con quello che stai cercando di fare? –