首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过工控机通过Task<T>

通过工控机通过Task<T>
EN

Stack Overflow用户
提问于 2014-05-14 14:02:06
回答 1查看 564关注 0票数 2

我有一个工控机之间的通讯服务和WinForm应用。它们在类的帮助下进行交互,类利用以下接口:

代码语言:javascript
运行
复制
public interface IBaseIPC
{

    Task<IPCConfig> GetConfig();
    Task<IPCInfo> Activate(IPCConfig ipcConfig);
    Task<IPCInfo> CancelActivation();
    Task<IPCInfo> GetInfo();
    Task<IPCInfo> Renew();
    Task<string> TestConnection(IPCConfig ipcConfig);
}

当这些方法是同步的,它工作得很好。现在,当返回类型从IPCConfig切换到任务时,在程序集'mscorlib、Version=4.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089‘中有一个异常类型'System.Threading.Tasks.Task`1[IPCInfo’不会被标记为可序列化。我看到它试图序列化任务,但失败了。有办法解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-14 14:17:00

您会以什么二进制格式发送任务?这个问题没有合理的答案。因此,您不能发送任务。合乎道理?

如果IPC库或框架本质上不是异步的,则不能将任务返回给它。框架必须理解它们。

您可能在这里处理的是同步过异步场景。阅读并理解这个。你现在会意识到你的处境不太好。这两种情况都是最糟糕的:没有异步IO的好处和更多的CPU使用。

该怎么办呢?取决于你的申请。也许您根本不应该去异步(因为框架不支持它)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23656908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档