2012-12-10 72 views
2

我在AX 2012遇到问题,我的观点是我必须在Dynamics中连接RS-232规模。线程AX 2012

我有工作离散模式(开放端口,采取当前的重量,关闭端口),所以COM端口配置是好的。

我的问题是实施连续模式时(从端口连续读取,并执行逻辑权重多个项目,无需用户点击任何东西),而我正在阅读端口,UI被冻结,甚至可以' t点击一个按钮停止该过程。

我的问题是:这可以通过另一个不阻塞主(UI)线程的线程来完成吗?

我正在阅读文档,找不到任何明确的内容。恕我直言,我认为只用一个线程做这件事绝对不会有诀窍。

回答

2

AX不是多线程的,所以显而易见的答案是:不。

但AX确实支持从事件循环中调用的“轮询”调用(在表单中)。使用所有对象都可用的setTimeOut方法。

查看this question的工作示例。

如果你可以做一个非阻塞呼叫来测试是否有任何数据,这可能适用于你。

2

可以在Ax中创建单独的线程,但很少这样做,不可取。 Google'Axe Thread MSDN'获取信息。

在我看来,你最好在C#中创建一个服务来处理通过COM端口进行通信的细节,并使用Business Connector在必要时读/写记录。