[英]Threading AX 2012
我在使用AX 2012时遇到问题,我的观点是必须在Dynamics中连接RS-232光栅尺。
我已经工作了离散模式(打开端口,增加当前重量,关闭端口),所以COM端口配置很好。
我的问题是实现连续模式时(从端口连续读取,并执行逻辑以加权多个项目,而无需用户单击任何东西),而我在读取端口时,UI被冻结,甚至无法单击按钮停止该过程。
我的问题是:这可以用另一个不阻塞主(UI)线程的线程来完成吗?
我正在阅读文档,找不到清晰的内容。 恕我直言,我认为仅在一个线程中完成所有操作就不会成功。
AX不是多线程的,所以显而易见的答案是:不。
但是,AX确实支持从事件循环(以某种形式)中调用的“轮询”调用。 使用在所有对象上都可用的setTimeOut方法。
有关工作示例,请参见此问题 。
如果您可以进行非阻塞调用以测试是否有任何数据,这可能对您有用。
可以在Ax中创建单独的线程,但是很少这样做,也不建议这样做。 Google'Ax 2012 Thread MSDN'获取信息。
在我看来,最好使用C#创建一个服务来处理通过COM端口进行通讯的细节,并在必要时使用Business Connector读取/写入记录。
实现此连续处理的推荐方法是创建一个定期运行的批处理作业。 您可以从单个批处理作业执行中运行多个处理任务,并且可以从单个作业执行以编程方式创建此任务,以便您可以以这种方式模拟多线程并具有良好的性能:
一个例子:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.