2台のコンピューター間で多くのシリアル化通信を行う必要があります。現在、これにはWCFを使用していますが、操作を完了するのにかかる時間は10k〜20kティックです。これは私の通信には長すぎます。直接TCP/も試しましたIP シリアライゼーションの結果は、操作ごとに約 1k ~ 2k ティックで、はるかに有望でした。WCF は単純なので使い続けたいと思いますが、WCF では複数の操作を同時に処理できないことにも気付きました。これも必要なことです。これを行う方法はありますか?WCF以外のものを使用できますか? それとも、独自の TCP/IP シリアライゼーション通信を書くことにこだわっていますか?
これは私がリクエストを行う方法です:
pipeFactory = new ChannelFactory<IBlissRequest>(binding, new EndpointAddress(ep));
pipeProxy = tempPipeFactory.CreateChannel();
((IClientChannel)pipeProxy).Open();
Stopwatch sw = new Stopwatch();
sw.Restart();
string returnString = pipeProxy.SystemRequest("name", "somthing more", "some data");
sw.Stop();
Console.WriteLine(sw.ElapsedTicks);
これは使用されるインターフェイスです:
[ServiceContract]
public interface IBlissRequest
{
[OperationContract]
string SystemRequest(string InstanceName, string MethodName, string Parameters);
}
インターフェイスで実行されるメソッドは空であるため、ティックをほとんど消費しません