首先我做了什么(如果不仅仅是我做了一些非常愚蠢的事情,将提供最小样本):
我有一个GUI应用程序,它将支持多个网络接口来更改GUI中显示的内容.网络接口实现为在GUI启动时动态加载的插件.GUI应用程序提供了一个boost :: asio :: io_service对象,它通过对接口的引用传递,因此可以使用它来构建异步I/O. 在GUI线程中,将轮询此io_service对象以同步网络接口对内容的访问.
现在的问题是,在轮询时,io_service对象不会调用处理程序.为了缩小这个范围,我只实现了一个接口并在其中创建了io_service对象,仍然从GUI线程调用轮询并且可以工作.
我现在的问题是:将io_service对象传递给运行时加载的DLL函数是否有可能存在一般性问题?
如果情况太不清楚,我将提供一个最低限度的例子.
编辑:我觉得真的很愚蠢:)只是把最小的例子一起砍掉了 - 当然 - 就像一个魅力.这几乎意味着问题起源于该软件的其他部分.
所以感谢大家的投入!
要使这个问题至少有用一点:任何想要做类似事情的人(通过boost :: asio :: io_service进行网络同步的插件),你可以在这里下载最小的例子.
我没有在文档中找到任何关于此的内容,只有关于默认值的泛型bla.我的假设是它应该像这样工作:
enum MyEnum {
UNSPECIFIED,
SPECIFIED
}
record Test {
MyEnum e = "UNSPECIFIED";
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,Java中的GenericDatumReader抱怨他正在寻找一个字符串,但期望一个MyEnum.
任何人都可以确认这是使用avro IDL使用具有默认值的枚举的正确方法吗?在那种情况下我在其他地方有一个错误.任何人都可以确认这不是这样做的方法并纠正我吗?任何输入都表示赞赏!
更新:在我的真实世界版本中,似乎新添加的记录枚举导致问题,即使它具有默认值.这意味着我的读者架构需要枚举,而记录不包含枚举.模式演变应该能够解决这个问题,但似乎失败了.更多细节:我在这里与Pig合作,而不是直接Java.
要对yarn 2推荐的所有软件包进行yarn不可变安装yarn workspaces focus --production --all,有没有一种方法可以只对一个工作区执行此操作?原因是我不想将所有依赖项安装到不同应用程序的 docker 容器中。