Ich schreibe eine stark asynchrone Anwendung.Queuing Methodenaufrufe - eine Idee wie?
Ich bin auf der Suche nach einer Möglichkeit, Methodenaufrufe zu Warteschlange, ähnlich wie BeginInvoke/EndInvoke tut .... aber in meiner eigenen Warteschlange. Der Grund dafür ist, dass ich mein eigenes optimiertes Nachrichtenwarteschlangensystem unter Verwendung eines Threadpools habe, aber gleichzeitig sicherstelle, dass jede Komponente in den Anforderungen single threaded ist (d. H. Ein Thread behandelt nur Nachrichten für eine Komponente).
Ich habe eine Menge Nachrichten hin und her. Für begrenzte Verwendung würde ich wirklich lieben, in der Lage zu sein, einen Nachrichtenaufruf nur mit Parametern einzuordnen, anstatt meinen eigenen Parameter, das Verpacken/Auspacken der Methode nur zu definieren, um viele administrative Anrufe zu tun. Ich will auch nicht immer die Warteschlange umgehen, und ich möchte definitiv nicht, dass der sendende Dienst darauf wartet, dass der andere Dienst antwortet.
Wer weiß, wie man einen Methodenaufruf abfängt? Eine Möglichkeit, TransparentProxy/Virtual Proxy dafür zu nutzen? ;) ServicedComponent? Ich möchte das so wenig Overhead wie möglich sein;)
TGhe Warteschlange ist nicht das Problem;) Ich habe, dass man bereits, und ein Viele Nachrichten, die Datenaktualisierungen transportieren. Mein Problem sind nur Funktionsaufrufe. Die Warteschlange verwendet dann einen ThreadPool, um einen Worker-Thread zu erhalten, der seinen Inhalt verarbeitet;) Ich habe viele Cross-Prozess-Daten-Update-Sachen dort - jetzt suche ich nach einer Möglichkeit, (Prozess-) Queue-Methodenaufrufe. Ein Nachrichtentyp, der keine "Daten" enthält, sondern einen Funktionsaufruf mit allen Parametern, so dass ich die Aufrufmethoden für den Zieldienst verwenden kann. Dies würde die Anzahl der verschiedenen Nachrichten, die ich brauche, erheblich reduzieren ... – TomTom
und ich hätte keine große Switch-Anweisung, nur um verschiedene Methoden aufzurufen. – TomTom
Da Sie versuchen, Inprozess-Methodenaufrufe in die Warteschlange zu stellen, scheint das Übergeben von Lambda genau das zu sein, wonach Sie suchen ... –