Scrivo un'applicazione pesantemente asincrona.Chiamate di metodi di accodamento - qualche idea di come?
Sto cercando un modo per accodare le chiamate di metodo, simile a ciò che BeginInvoke/EndInvoke fa .... ma sulla mia coda PROPRIO. Il reaqson è che sto avendo il mio sistema di accodamento dei messaggi ottimizzato usando un threadpool ma allo stesso tempo assicurandomi che ogni componente sia a thread singolo nelle richieste (cioè un thread gestisce solo i messaggi per un componente).
Ho molti messaggi che vanno avanti e indietro. Per un uso limitato, mi piacerebbe molto essere in grado di accodare una chiamata di messaggio con parametri, invece di dover definire il mio parametro, metodo wrapping/unwrapping solo per fare molte chiamate amministrative. Inoltre, non sempre voglio ignorare la coda e sicuramente non voglio che il servizio di invio attenda che l'altro servizio risponda.
Qualcuno conosce un modo per intercettare una chiamata di metodo? Un modo per utilizzare TransparentProxy/Virtual Proxy per questo? ;) ServicedComponent? Vorrei che questo fosse il più piccolo possibile possibile;)
tghe messa in coda non è il problema;) ho che uno già, e un molti messaggi che trasportano gli aggiornamenti dei dati. Il mio problema sono solo le chiamate di funzione. La coda quindi utilizza un ThreadPool per ottenere un thread di lavoro che elabora il suo contenuto;) Ho un sacco di processi di aggiornamento dei dati cross-process lì - ora cerco un modo per effettuare chiamate di metodo in coda (in elaborazione). Un tipo di messaggio che non ha "dati" ma una chiamata di funzione con tutti i parametri, quindi posso utilizzare tutti i metodi di chiamata sul servizio di destinazione. Ciò ridurrebbe in modo significativo il numero di messaggi diversi che mi servono ... – TomTom
e non avrei dovuto elaborare una dichiarazione dell'interfaccia hugh solo per chiamare metodi diversi. – TomTom
Dato che stai cercando di fare la fila per le chiamate al metodo in-process, passare lambdas sembra essere esattamente quello che stai cercando ... –