Hola a todos,
Cuando creo varias instancias de JMP como archivo .jsl que llama a diferentes carpetas, algunas veces JMP se ejecuta en segundo plano incluso después del código exit (). Estoy usando Windows 10.
Si lo vuelvo a ejecutar en el mismo archivo bloqueado en JMP, funciona bien y sale.
¿Es debido a un problema de Windows 10 o porque JMP no puede manejar 100 o más instancias a la vez?
Gracias.
Si entiendo correctamente, tienes más de 100 instancias de JMP ejecutándose al mismo tiempo. Sospecho que están usando algún recurso (memoria quizás, o manejadores de archivos, o ...) y JMP o Windows están teniendo dificultades para recuperarse de un error.
Yo sugeriría modificar el código que inicia las instancias JMP para limitar el número de ejecución al mismo tiempo. No sé cuál será el número óptimo para la velocidad, pero supongo que menos de 16 en un escritorio típico.
Traza un montón de archivos .jrn, .png y .txt en la carpeta específica y muestra un archivo.txt completado y se cierra.
En la ventana del pirata informático de proceso, JMP aún está abierto para algunas instancias que tuve que cerrar manualmente.
Si lo ejecuto de nuevo, cuando hay menos instancias, funciona bien y no veo ningún JMP bloqueado.
Por eso me preguntaba si cuando se ejecutan varias instancias, ¿el uso de wait () realmente ayudará? Si es así, ¿cuándo y dónde debo usar wait ()? ¿Algún problema conocido con la interacción de algún otro programa con JMP en Windows 10?
Aplicación: jmp.exe
Versión de Marco: v4.0.30319
Descripción: la aplicación solicitó la terminación del proceso a través de System.Environment.FailFast (mensaje de cadena).
Mensaje: Error del sistema irrecuperable.
Apilar:
en System.Environment.FailFast (System.String)
en System.Windows.Controls.WebBrowser.TabIntoCore (System.Windows.Input.TraversalRequest)
en System.Windows.Controls.WebBrowser.OnLoadCompleted (System.Windows.Navigation.NavigationEventArgs)
en MS.Internal.Controls.WebBrowserEvent.DocumentComplete (System.Object, System.Object ByRef)
en System.RuntimeMethodHandle.InvokeMethod (System.Object, System.Object [], System.Signature, Boolean)
en System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (System.Object, System.Object [], System.Object [])
en System.Reflection.RuntimeMethodInfo.Invoke (System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object [], System.Globalization.CultureInfo)
en MS.Win32.UnsafeNativeMethods + IWebBrowser2.Navigate2 (System.Object ByRef, System.Object ByRef, System.Object ByRef, System.Object ByRef, System.Object ByRef)
en MS.Win32.UnsafeNativeMethods + IWebBrowser2.Navigate2 (System.Object ByRef, System.Object ByRef, System.Object ByRef, System.Object ByRef, System.Object ByRef)
en System.Windows.Controls.WebBrowser.DoNavigate (System.Uri, System.Object ByRef, System.Object ByRef, System.Object ByRef, Boolean)
en WinHost.TipView.showCurrentTip ()
en WinHost.TipView..ctor ()
en .WinHost.newTipView ()
en WinHost.WpfApp.processPendingIdleRequests ()
en WinHost.WpfApp.doIdleTimeProcessing ()
en System.RuntimeMethodHandle.InvokeMethod (System.Object, System.Object [], System.Signature, Boolean)
en System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (System.Object, System.Object [], System.Object [])
en System.Delegate.DynamicInvokeImpl (System.Object [])
en System.Windows.Threading.ExceptionWrapper.InternalRealCall (System.Delegate, System.Object, Int32)
en System.Windows.Threading.ExceptionWrapper.TryCatchWhen (System.Object, System.Delegate, System.Object, Int32, System.Delegate)
en System.Windows.Threading.DispatcherOperation.InvokeImpl ()
en System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
en System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
en System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
en MS.Internal.CulturePreservingExecutionContext.Run (MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object)
en System.Windows.Threading.DispatcherOperation.Invoke ()
en System.Windows.Threading.Dispatcher.ProcessQueue ()
en System.Windows.Threading.Dispatcher.WndProcHook (IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
en MS.Win32.HwndWrapper.WndProc (IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
en MS.Win32.HwndSubclass.DispatcherCallbackOperation (System.Object)
en System.Windows.Threading.ExceptionWrapper.InternalRealCall (System.Delegate, System.Object, Int32)
en System.Windows.Threading.ExceptionWrapper.TryCatchWhen (System.Object, System.Delegate, System.Object, Int32, System.Delegate)
en System.Windows.Threading.Dispatcher.LegacyInvokeImpl (System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
en MS.Win32.HwndSubclass.SubclassWndProc (IntPtr, Int32, IntPtr, IntPtr)
en MS.Win32.UnsafeNativeMethods.DispatchMessage (System.Windows.Interop.MSG ByRef)
en MS.Win32.UnsafeNativeMethods.DispatchMessage (System.Windows.Interop.MSG ByRef)
en System.Windows.Threading.Dispatcher.PushFrameImpl (System.Windows.Threading.DispatcherFrame)
en System.Windows.Application.RunDispatcher (System.Object)
en System.Windows.Application.RunInternal (System.Windows.Window)
en WinHost.WpfApp.Run ()
¿Qué hace tu JSL? ¿Cómo sabe que se llamó a la función de salida pero la instancia JMP todavía se está ejecutando? ¿Hay algo en la ventana de registro?
JMP está basado en la memoria. Si tiene 100 instancias activas simultáneamente, necesitará 100x (por RAM de instancia). Dependiendo de los datos, eso sería un mínimo de 12 GB en un sistema de 64 bits. La huella puede variar según el sistema operativo, ¿es posible que esté usando más en Windows 10? ¿Cuanta memoria tienes? ¿Qué versión de Windows 10 estás usando?
Gracias,
Brian Corcoran
Desarrollo JMP