Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Duo-Core: Programm nur auf einer CPU laufen lassen? (https://www.delphipraxis.net/88789-duo-core-programm-nur-auf-einer-cpu-laufen-lassen.html)

Nuclear-Ping 21. Mär 2007 14:00

Re: Duo-Core: Programm nur auf einer CPU laufen lassen?
 
Ok, keine von mir explizit initiierten Threads. ;)
Es ist z.B. nur eine Aufnahme per BASS die gestartet wird und die Callback-Routine halt dazu. Wie schon gesagt läuft der Spaß auf Single-Core-Systemen 24/7 blasenfrei. Nur bei Duo-Core-Systemen ohne explizite Affinitätszuweisung auf einen Core steigt er halt willkürlich aus.

DGL-luke 21. Mär 2007 14:01

Re: Duo-Core: Programm nur auf einer CPU laufen lassen?
 
BASS läuft ganz sicher threadig.

Robert Marquardt 21. Mär 2007 14:04

Re: Duo-Core: Programm nur auf einer CPU laufen lassen?
 
Na da haben wir doch schon einen hoechst verdaechtigen Thread. Irgendwo muss naemlich ein Thread laufen der den Callback ausfuehrt.
Da lohnt es spezifisch auf BASS-Probleme mit Dual-Cores zu suchen. Google ist dein Freund.

Nuclear-Ping 21. Mär 2007 14:35

Re: Duo-Core: Programm nur auf einer CPU laufen lassen?
 
Google ist in dem Fall nicht wirklich mein Freund. Die einzige Seite die ich für "BASS Dual Core Problems" gefunden hab war das Forum von BASS -> http://www.un4seen.com/forum/?topic=5102.0
Und da war die Empfehlung auch nur, per SetAffinityMask den eigenen Prozess auf eine CPU zu limitieren, "to avoid multicore common problems".

Robert Marquardt 21. Mär 2007 14:56

Re: Duo-Core: Programm nur auf einer CPU laufen lassen?
 
Na damit ist erst mal klar das BASS nicht dual-core-fest ist.

Nuclear-Ping 21. Mär 2007 15:01

Re: Duo-Core: Programm nur auf einer CPU laufen lassen?
 
Hm, mich hat grad wer auf eine Idee gebracht. In der BASS-Callback erfolgt ein Aufruf an eine andere Callback zur Darstellung eines Oszilloskops. Daran hab ich noch garnicht gedacht ... da könnte auch der Hund begraben liegen. :wall:

Robert Marquardt 21. Mär 2007 15:18

Re: Duo-Core: Programm nur auf einer CPU laufen lassen?
 
Kann gut sein. Die VCL ist nun mal nicht threadfest.
In diesem Fall wuerde ich vorschlagen eine geeignete WM_USER Message an ein Fenster abzusetzen und dort erst den Callback zum Oszilloskop durchzufuehren. Das erledigt die Synchronisierung zum Hauptthread. Da du dich im gleichen Prozess bewegst kann LParam durchaus ein Pointer auf Daten sein. Man kann die Daten aber auch ueber eine globale Variable uebergeben.

Nuclear-Ping 25. Mär 2007 11:32

Re: Duo-Core: Programm nur auf einer CPU laufen lassen?
 
Also ich hab das jetzt mal auf PostMessage umgestellt. Funktioniert beim Single-Core-Betrieb erstmal ganz gut. Keine Probleme auch auf der Duo-Core-Maschine.

Wenn ich allerdings die Zwangszuweisung der CPU-Affinität (nur auf einem Core zu laufen) wieder aufhebe, flackert das Osci auf dem Duo-Core und es dauert nicht lange, dann werde ich mit "Leinwand erlaubt kein Zeichnen"-Meldungen zugebombt. Setze ich die Anwendung wieder nur auf einen Core, gehts wieder. :gruebel:

Nuclear-Ping 2. Apr 2007 22:27

Re: Duo-Core: Programm nur auf einer CPU laufen lassen?
 
Keiner eine Idee, wie ich das löse?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:31 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz