سؤال

ويمكنني استخدام الرياضيات مع JLINK لمشروع بحثي، والذي ينطوي على الكثير من الحساب. يستخدم الرياضيات باعتبارها الواجهة الرسومية لإدخال المعلمات، وبعد التآمر على النتائج. توجد خوارزميات الفعلية في فئات جافا، والتي تسمى عبر JLINK.

وو"وصلة" هو مثيل مسمى evalFrontend. على الضغط على الزر، يتم تنفيذ شيء من هذا القبيل:

 RunEvaluation[] := (
  success = False;
  results = evalFrontend@run[];
  eval = evalFrontend@getEvaluation[];
  success = eval@success[];
  Return[results];
  )

إذا حساب يحتاج الى اكثر من 10 ثانية، يتم عرض الحوار:

<اقتباس فقرة>   

وإحباط الديناميكي: النواة لا يستجيب لتقييم الحيوية. يمكنك أن تختار إما لإجهاض وإعادة تشغيل نواة أو متابعة الانتظار. [..]

وبينما يتم عرض هذه، جافا لا يزال قيد التشغيل. ومع ذلك، بعد بعض الوقت، يتم عرض مربع حوار آخر:

<اقتباس فقرة>   

وتعطيل الحيوي: تشغيل أو الأشياء أكثر حيوية وتستغرق وقتا طويلا بشكل مفرط لإنهاء تقييم. تستطيع eitehr تعطيل التقييم مزيد من الحيوية أو متابعة الانتظار [...]

وعندما يظهر هذا، يتم إنهاء عملية جافا.

وكيف يمكن منع هذا من الحدوث؟ سيكون موضع تقدير أي تلميحات.

هل كانت مفيدة؟

نصائح أخرى

إذا UI الخاص بك والنقر على زر لبدء حساب، استخدم الأسلوب -> الخيار "قائمة الانتظار" لزر:

Button["Start Chugging", RunComputation[], Method -> "Queued"]

والحوار تعطيل الحيوي سوف تظهر أبدا، وسوف التحديثات الحيوية لا تزال تحدث، حتى تتمكن من رصد التقدم المحرز في الحساب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top