Fastest/Lightest server/channel combination for same host Delphi/C# communication

Hello,

I have a multi-tier application where the Delphi host communicates with a set of clients written in C# in such a way that the Delphi application is the server.
These will never be distributed across a network because the C# clients are started by the Delphi host.
Right now, I’m using the named pipe server and channel which works well enough. But every time a C# client makes a call to the Delphi server, the server creates a thread, processes the request and lets the thread die.
This overhead means a performance hit, that I would like to minimize.
What other server/channel combination would your recommend? I tried looking in the documentation, but I could not find anything that would work in this Delphi/C# communication. For instance, TROLocalServer only works in the same process, and TROWinMessageServer does not seem to be available in C#, let alone in a command line C# application.

Alternatively, do you think using Hydra would allow for better performance?

Regards,
Olivier

Hydra would certainly allow for better performance since it would be running in-proc (like TROLocalChannel does), and has a lot less marshalling to do.

Hello

This behavior is not tied to a concrete server channel type. Iow any request will be processed in that way, regardless of the server channel used to receive it. Also some time is required to deserialize the incoming message to acquire service name and its method name, parameters and so on.
If you’ll decide to try out Hydra than take a look at this post, it will help you to create a Delphi host and .NET plugin: Need a Jumpstart with Delphi XE3 and .NET 2.0 DLL Assemblies Integration - #3 by antonk

Regards