Newsgroup: it.comp.lang.visual-basic
Titolo: Multithread

Ciao a tutti,
volevo sapere una cosa da chi ha piu' esperienza di me con il Visual Basic:
e' possibile fare del multithreading con Visual Basic. Se si come?
Grazie
Jeremi

e' possibile fare del multithreading con Visual Basic. Se si come?
Prova con un frame su un form:
Private Sub Frame1_MouseMove(Button As Integer, Shift As Integer, _
                                                      x As Single, y As Single)
    Dim pt As POINTAPI
    GetCursorPos pt
    ScreenToClient Frame1.hwnd, pt
    Me.Caption = "api: " & pt.x * Screen.TwipsPerPixelX & "," & _
                                pt.y * Screen.TwipsPerPixelY & " - vb : " & x & "," & y
End Sub
hth, hal

    GetCursorPos pt
Chiedo tenia :
ti ho mandato la risposta ad un altro thread :(
Cmq, stavo preparando anche la tua ;-)
ciao, hal

e' possibile fare del multithreading con Visual Basic. Se si come?
E' un po' un' avventura.
Ti rimando ad un esempi, che non ho ancora provato, ma mi sembra interessante:
http://www.planet-source-code.com/xq/ASP/txtCodeId.14479/lngWId.1/qx/vb/scripts/ShowCode.htm
di Philipp Weidmann 
se lo provi, fammi sapere ;-)
ciao, hal


Subject: R: MULTI THREADING
Date: Fri, 08 Dec 2000 12:49:38 GMT
Applicazioni multithreading in Visual Basic si possono fare. Io ne ho
realizzate diverse. Il discorso e' assi complesso.
Esistono due strade:
1- Usare le API (+ complessa)
Sostanzialmente esiste una API CreateThread alla quale passi l'indirizzo di
una procedura da eseguire tramite una AddressOf.
Il grosso problema rimane il fatto che, come in C, il codice deve prevedere
la gestione di una coda di messaggi (classica GetMessage e DispatchMessage),
cosa che non viene implementata da Visual Basic automaticamente, in quanto
usi un'API.
Altro grosso problema e' la gestione degli oggetti COM (penso che a SQL
Server ci vai attraverso ADO la la libreria specifica di SQL ). Per essi il
problema e' che quasi nessuno di essi e' free-threading ma bensi' apartment
threading, di conseguenza devi eseguire quello che viene detto Marshalling
fra il thread del processo e quello da te creato una l'API. PEr fare questo
esiste una API CoMarshallingInterfaceAndStream (o qualcosa del genere).
2- Usare la CreateObject con un server out-of-process (+ semplice)
Se usi la CreateObject di una classe creabile di un server out-of-process
all'interno del server stesso ottieni che la classe viene istanziata in un
altro thread. Stavolta VisualBasic pensa a tutto (loop dei messaggi e
marshalling).
Non so fino a che punto mi posso spingere nelle spiegazioni, se davvero ti
interessa fammelo sapere.
Saluti,
Davide Cafasso


Ecco un' altra idea, proveniente dal sito del nostro Fibia:
http://vbsimple.virtualave.net/howto/030.htm
ciao, hal

 wrote in message
news:9fmb73$4r148$1...@ID-56381.news.dfncis.de...

Ho rinunciato all'idea del multithreading... ho cercato di farmi un po' di
cultura (grazie anche ai tuoi link) e ho capito che non era proprio il caso
di imbattersi dentro l'argomento...
Ho convertito la mia soluzione in multiprocessing, visto il bassissimo grado
di interoperabilita' che hanno i miei task. Adesso, come da altro mio
messaggio, ho problemi con l'invio di una stringa tramite la sendmessage...
:-(
Grazie per l'aiuto
Jeremi.