繁体   English   中英

线程AX 2012

[英]Threading AX 2012

我在使用AX 2012时遇到问题,我的观点是必须在Dynamics中连接RS-232光栅尺。

我已经工作了离散模式(打开端口,增加当前重量,关闭端口),所以COM端口配置很好。

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

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

我正在阅读文档,找不到清晰的内容。 恕我直言,我认为仅在一个线程中完成所有操作就不会成功。

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

但是,AX确实支持从事件循环(以某种形式)中调用的“轮询”调用。 使用在所有对象上都可用的setTimeOut方法。

有关工作示例,请参见此问题

如果您可以进行非阻塞调用以测试是否有任何数据,这可能对您有用。

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

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

实现此连续处理的推荐方法是创建一个定期运行的批处理作业。 您可以从单个批处理作业执行中运行多个处理任务,并且可以从单个作业执行以编程方式创建此任务,以便您可以以这种方式模拟多线程并具有良好的性能:

一个例子:

http://community.dynamics.com/ax/b/axilicious/archive/2012/02/24/business-operation-framework-and-multi-threading.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM