Multithreading in importierten cpp filez
Übersicht

porcusBetreff: Multithreading in importierten cpp filez |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo!
Ist es möglich in den importierten cpp Dateien Multithreading zu verwenden, oder geht es da auch nicht ? (Ich habe leider keinen Dual/Quad Core um das zu testen.) |
||
*Account deaktiviert* |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sofern der teil der CPP mit dem du kommunizierst via Extern im gleichen Thread läuft wie BM ist es kein Problem.
wenn du jedoch versuchst das ganze via Callback zu verlinken, wird dir der GC um die ohren fliegen, sobald es auf einem Multicore / Multiprozessor System läuft. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vieleicht hilft dir das weiter, ist aber ein VB6 Beispiel .
Code: [AUSKLAPPEN] 'In a form 'Add a command button to the form Private Sub Command1_Click() 'After you click this button, try to move the window 'You will see that the AsyncThread-function was executed asynchronously hThread = CreateThread(ByVal 0&, ByVal 0&, AddressOf AsyncThread, ByVal 0&, ByVal 0&, hThreadID) CloseHandle hThread End Sub Private Sub Form_Unload(Cancel As Integer) 'If the thread is still running, close it If hThread <> 0 Then TerminateThread hThread, 0 End Sub 'In a module Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Declare Function CreateThread Lib "kernel32" (lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Public hThread As Long, hThreadID As Long Public Sub AsyncThread() 'Let this thread sleep for 10 seconds Sleep 10000 hThread = 0 End Sub |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du hast seine Frage schon gelesen oder?
Es ging nicht drum wie es geht, sondern ob es geht. Und die antwort ist klar Nein sofern die Threads irgendwie (egal in welcher weise) direkt mit BM verbunden sind anstatt über ein "zugriffsinterface" von BM getrennt. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Dreamora
er bindet doch auch C Quelltexte ein wo Funktionen aus Blitz aufgerufen werden . Das ist doch ne Trennung . Und in dem C Teil kann eine Funktion als Thread laufen . Das man sein Programm abschießen kann wenn man nicht weiß was man tut ist klar . Und weil ich der Meinung bin das es geht halt das Beispiel aus der API Guide . Mit Multithreading in VB habe ich auch schon meine Erfahrung gesammelt, war allerdings nur für ein Projekt . |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie gesagt:
Weder darf BlitzMax auf daten zugreifen die von einem eigenen Thread genutzt werden, noch darf dieser eigene thread auf BlitzMax funktionalität zurückgreifen (Callbacks) Beides ist für den GC instantan tödlich. Das einzige was du machen kannst und darfst ist C++ source einbinden und nutzen (sei es für callbacks oder aufrufe) der keinen eigenen thread nutzt. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group