Keine Rückmeldung

Mit BricsCAD V16 begann es. Bei 3D Operationen wie Zahnräder mehrfach drehen (Simulation) wird nach einiger Zeit "BlickVon" schwarz und alle weiteren Operationen z.B. drehen von Zahnrädern wird im Hintergrund weiter ausgeführt. Nach der Angabe der Zeichnung erscheint [Keine Rückmeldung]. Ich habe ein neues Notebook mit quad-Prozessor und BricsCAD V17 ???

Peter Görlich

Comments

  • I think this is really a Windows issue.
    This link may be helpful:
    https://www.theswamp.org/index.php?topic=50848.0
  • Dear Peter,

    indeed, as Roy mentioned, the problem is the "intelligence" of Windows ...
    under heavy workload, say some application code runs intensive loops, when Windows does not get a "PeekMessage()" anymore, for a given time period, Window assumes the application "to be dead", and puts an overlay image over the application window ...

    with next PeekMessage() call, Windows knows again that the application is alive, and removes that overlay ...

    To prevent that dangerous and misleading effects (users might kill the application via TaskManager), the only safe way is to call PeekMessage() from application code, from time to time ...
    our Lisp engine effectively does so, and it is really rare to see that "Application not responding" for Lisp apps ...
    for C++/NET/COM based applications, the best way is to call a PeekMessage() - with PM_NO_REMOVE - from intensive loops ...
    mostly this will help :-)

    many greetings !
  • Hallo Herr Moses,

    das mit dem [keine Rückmeldung] passiert allerdings auch bei BricsCAD-Befehlen wie z.B. ableiten von 2D Ansichten im Papierbereich aus komplexen 3D Konstruktionen. Das Ergebnis war nicht brauchbar. Beim zweiten Versuch ??? allerdings keine Rückmeldung und alles o.k.

    Peter Görlich


  • Hallo, Herr Görlich,

    ja, auch die "nativen" Befehle können intensiv arbeiten :-)
    Und wenn dies auf der Ebene der DWG (database) passiert, dann kann der dortige code nicht ::PeekMessage() aufrufen, da jenes Windows-spezifisch ist, und der DB-Kernel ja plattform-neutral ist ...

    Letztlich ist es ein Problem von Windows selbst - dank der "merkwürdigen" Methode, wie Windows ein hängendes Programm identifizieren will, was letztlich so erfolgreich wie der berühmte "Blick in die Glaskugel" ist :-)
    Einen wirksamen Schutz gibt es nur partiell (wie zuvor beschrieben), muss aber eben extra eingebaut werden ...
    und dies ist nicht überall möglich.

    viele Grüsse !
This discussion has been closed.