Hallo alle,
Wenn ich mehrere Instanzen von JMP als .jsl-Datei erstelle und unterschiedliche Ordner aufrufe, läuft JMP manchmal auch nach dem Exit()-Code im Hintergrund. Ich verwende Windows 10.
Wenn ich es mit denselben JMP-Dateien erneut ausführe, funktioniert es einwandfrei und wird gelöscht.
Liegt es an einem Problem mit Windows 10 oder liegt es daran, dass JMP nicht 100 oder mehr Instanzen gleichzeitig verarbeiten kann?
Danke.
Wenn ich das richtig verstehe, laufen mehr als 100 Instanzen von JMP gleichzeitig. Ich vermute, dass sie einige Ressourcen verbrauchen (vielleicht Speicher oder Datei-Handles oder ...) und entweder JMP oder Windows Schwierigkeiten haben, einen Fehler zu beheben.
Ich würde vorschlagen, den Code zu ändern, der die JMP-Instanzen startet, um die Anzahl der gleichzeitig ausgeführten Instanzen zu begrenzen. Ich weiß nicht, wie hoch die optimale Geschwindigkeitszahl sein wird, aber auf einem typischen Desktop würde ich auf unter 16 tippen.
Es zeichnet eine Reihe von .jrn-, .png- und .txt-Dateien im jeweiligen Ordner auf, zeigt eine fertige .txt-Datei an und wird beendet.
Im Prozess-Hacker-Fenster ist JMP einige Male noch geöffnet, sodass ich es manuell schließen musste.
Wenn ich es erneut ausführe, wenn die Anzahl der Instanzen geringer ist, funktioniert es einwandfrei und ich sehe kein hängengebliebenes JMP.
Aus diesem Grund habe ich mich gefragt, ob die Verwendung von wait() tatsächlich hilft, wenn Sie mehrere Instanzen ausführen. Wenn ja, wann und wo sollte ich wait() verwenden? Gibt es bekannte Probleme mit der Interaktion eines anderen Programms mit JMP in Windows 10?
Anwendung: jmp.exe
Framework-Version: v4.0.30319
Beschreibung: Die Anwendung hat die Prozessbeendigung über System.Environment.FailFast (Zeichenfolgennachricht) angefordert.
Meldung: Nicht behebbarer Systemfehler.
Stapel:
bei System.Environment.FailFast(System.String)
bei System.Windows.Controls.WebBrowser.TabIntoCore(System.Windows.Input.TraversalRequest)
bei System.Windows.Controls.WebBrowser.OnLoadCompleted(System.Windows.Navigation.NavigationEventArgs)
bei MS.Internal.Controls.WebBrowserEvent.DocumentComplete(System.Object, System.Object ByRef)
bei System.RuntimeMethodHandle.InvokeMethod(System.Object, System.Object[], System.Signature, Boolean)
bei System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(System.Object, System.Object[], System.Object[])
bei System.Reflection.RuntimeMethodInfo.Invoke(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo)
bei MS.Win32.UnsafeNativeMethods+IWebBrowser2.Navigate2(System.Object ByRef, System.Object ByRef, System.Object ByRef, System.Object ByRef, System.Object ByRef)
bei MS.Win32.UnsafeNativeMethods+IWebBrowser2.Navigate2(System.Object ByRef, System.Object ByRef, System.Object ByRef, System.Object ByRef, System.Object ByRef)
bei System.Windows.Controls.WebBrowser.DoNavigate(System.Uri, System.Object ByRef, System.Object ByRef, System.Object ByRef, Boolean)
bei WinHost.TipView.showCurrentTip()
bei WinHost.TipView..ctor()
bei .WinHost.newTipView()
bei WinHost.WpfApp.processPendingIdleRequests()
bei WinHost.WpfApp.doIdleTimeProcessing()
bei System.RuntimeMethodHandle.InvokeMethod(System.Object, System.Object[], System.Signature, Boolean)
bei System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(System.Object, System.Object[], System.Object[])
bei System.Delegate.DynamicInvokeImpl(System.Object[])
bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
bei System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
bei System.Windows.Threading.DispatcherOperation.InvokeImpl()
bei System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
bei System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
bei System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
bei MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object)
bei System.Windows.Threading.DispatcherOperation.Invoke()
bei System.Windows.Threading.Dispatcher.ProcessQueue()
bei System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
bei MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
bei MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
bei System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
bei System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
bei MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
bei MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
bei MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
bei System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
bei System.Windows.Application.RunDispatcher(System.Object)
bei System.Windows.Application.RunInternal(System.Windows.Window)
bei WinHost.WpfApp.Run()
Was macht Ihre JSL? Woher wissen Sie, dass die Exit-Funktion aufgerufen wurde, die JMP-Instanz aber noch läuft? Gibt es etwas im Protokollfenster?
JMP ist speicherbasiert.Wenn Sie 100 Instanzen gleichzeitig haben, benötigen Sie 100x (pro Instanz) RAM.Je nach Datenmenge wären das auf einem 64-Bit-System mindestens 12 GB.Der Platzbedarf kann je nach Betriebssystem unterschiedlich sein. Ist es also möglich, dass Sie unter Windows 10 mehr nutzen?Wie viel Speicher haben Sie?Welche Version von Windows 10 verwenden Sie?
Danke,
Brian Corcoran
JMP-Entwicklung