在thrift 0.11.0 c#库中是否有支持异步操作的传输?

时间:2018-05-16 03:29:31

标签: c# thrift

我使用thrift(版本0.11.0)c#编译器来生成支持异步操作的c#库。命令行如下:

thrift-0.11.0.exe --gen csharp:async Message.thrift

当我启动客户端时,程序会抛出Thrift.Transport.TTransportException异常并显示消息:

  

此传输不支持异步操作

客户端代码段:

TTransport transport = new TSocket("localhost", 9090);
TProtocol protocol = new TBinaryProtocol(transport);
MessageService.Client client = new MessageService.Client(protocol);
client.Add(someObject);

由于TSocket不支持异步操作,因此我检查了Thrift.Transport命名空间中定义的所有类。似乎它们都不支持异步操作。 enter image description here

我在Java中找到了一个TNonblockingTransport类,它似乎支持异步操作。 .Net / C#是否有任何等效的节俭传输?

更新

我已经检查了Apache Thrift Language Support。它还不支持C#中的非阻塞服务器。它支持.net core 2.x,因为我使用WPF,所以不适用于我的场景。

enter image description here

1 个答案:

答案 0 :(得分:0)

即使您的整个应用程序不是.Net Core(不支持WPF),您也可以使用self生成器。

使用netcore生成器创建您应该能够引用的.Net Standard库。我们在三种不同的WPF应用程序中使用此方法。

netcore名称空间包含具有Thrift.Transports.Client成员函数的客户端。