2

I'm having trouble with AX 2012, my point is that I must interface a RS-232 scale in Dynamics.

I've got working discrete mode (open port, take current weight, close port) so COM port config is fine.

My problem is when implementing continuous mode (read continuously from port, and do the logic to weight multiple items, without user having to click on anything), while i'm reading port, the UI is frozen, even can't click a button to stop the process.

My question is: can this be done with another thread not blocking the main (UI) thread?

I was reading the documentation and can't find anything in clear. IMHO, I think that doing it all in only one thread won't do the trick.

4

3 に答える 3

2

AX はマルチスレッドではないため、当然の答えはノーです。

ただし、AX はイベント ループ (フォーム内) から呼び出される「ポーリング」呼び出しをサポートします。すべてのオブジェクトで使用できるsetTimeOutメソッドを使用します。

実際の例については、この質問を参照してください。

非ブロッキング呼び出しを実行してデータがあるかどうかをテストできる場合、これはうまくいくかもしれません。

于 2012-12-10T13:31:33.530 に答える
0

この継続的な処理を実現するための推奨される方法は、定期的に実行されるバッチジョブを作成することです。単一のバッチジョブ実行から複数​​の処理タスクを実行でき、単一のジョブ実行からプログラムでこのタスクを作成できるため、この方法でマルチスレッドを優れたパフォーマンスでシミュレートできます。

例:

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

于 2013-03-14T16:10:06.580 に答える