Newsgroup: it.comp.lang.visual-basic
Titolo: Modalità asincrona=Bufala?

Qualche giorno fa si era formato un bel thread riguardante il
MULTI-THREADING... Pareva che l'unico sistema fosse avvire la parte che si
voleva in un altro thread da una DLL ActiveX... Con proprietà di
Apartament-threading (forse non si scrive così...) e invisibilità
all'utente...
Beh... giurerei che così facendo il codice viene eseguito più velocemente...
ma il programma rimane bloccato durante l'esecuzione dei metodi dell'OCX...
Ma allora... Si può o non si può ottenere questo MULTI-THREADING con VB6 o
no?
    Grazie a tutti
            Allanon

 wrote in message
news:91sdf3$3t7$1...@fe2.cs.interbusiness.it...


 ma il programma rimane bloccato durante l'esecuzione dei metodi dell'OCX...
In questo caso il multri-threading non implica per forza la modalita' asincrona;
ti riporto un passaggio del manuale:
Operazioni asincrone
In Visual Basic non è possibile sdoppiare l'esecuzione, ovvero fare in modo che
un thread inizializzi la chiamata di un metodo in un nuovo thread, riprendendo
immediatamente l'elaborazione del thread originale. Nell'applicazione di prova è
possibile simulare questo comportamento facendo in modo che la chiamata del
metodo originale attivi un timer e venga quindi completata. Quando viene
generato l'evento del timer, è possibile disattivare il timer ed eseguire
l'elaborazione asincrona. Questa tecnica è descritta in "Eventi e funzioni
callback asincrone" ed è illustrata mediante l'applicazione di esempio Caffè
(vedere "Creazione di un componente EXE ActiveX").
Nota che il timer a cui si fa riferimento non deve necessariamente essere un
*controllo* timer su un form ma anche un timer via codice.
Per ulteriori spiegazioni puoi cercare sul manuale online il capitolo
"Scalabilità e multithreading" sotto "Creazione di componenti ActiveX \
Progettazione di componenti di codice"
Ciao
--
Luca Dormio
luca....@tin.it

Progettazione di componenti di codice"
Dove trovo il manuale online? Indendi le MSDN? Perché non lo trovo...
            Grazie
                        Allanon

 immediatamente l'elaborazione del thread originale.
E' vero e non è vero.
Un caso tipico può essere un form modale.
Quando viene mostrato, il flusso di elaborazione del codice
principale viene interrotto, fino a che il form modale viene
rilasciato. L'errore tipico è quello di tentare di assegnare il
form modale ad un thread separato, per continuare l'elaborazione
del codice principale. Questo non è possibile.
Ossia CreateThread() fallisce e si genera un IPF.
Occorre invece assegnare ad un thread separato le routine del
codice principale che devono eseguire in modalità asincrona.
Si creano quindi uno o più  thread sospesi, che vengono attivati
in priorità da stabilire, avendo cura di istanziare i thread tramite
un modulo di classe (non un .bas).
Le prestazioni sono discrete (in relazione anche alla priorità
attribuita ai thread).

...Scusa, ma temo di non aver capito nulla...
        Allanon

 wrote in message
news:91t606$5a46p$1...@ID-51240.news.dfncis.de...



[cut]
Pagato lo zio Bill ???

 Dove trovo il manuale online? Indendi le MSDN? Perché non lo trovo...
Si, i 2 CD MSDN
dovresti avere un'intera sezione "Documentazione di Visual Basic" e da li in
giu' tutti i capitoli che ti ho elencato...


>Pagato lo zio Bill ???
Pure troppo... :-(((
        Allanon
(Passi che lazienda spenda un po' per il VS... MA PER OFFICE... :-(((

 utilizzarlo porta invariabilmente a un GPF.
Lo sapevo che ci mettevi lo zampino (o, visto, il periodo, lo zampone).
Se ne riparla dopo le vacanze.
Ciao

 asteriscoalessandroasterisco ha scritto:


perche' aspettare tanto ? se vi prendete dietro telefonino e portatile,
potete continuare il duetto anche fra panettone e carbone. anche senza
portatile. pero' mi tenete una copia degli sms, p.f.
*auguri*
a.

 wrote in message
news:922j55$5qsm4$1...@ID-51240.news.dfncis.de...

Buon millennio  a tutti :)
Sono tornato... Pensavate di esservi liberati di me eh? :)=
Dunnnque... Tu dici che e' possibile in VB6 utilizzare in modo umano i
thread multipli?
Dimmi qualcosa di + :) Sinceramente non ci ho mai provato...
Ciaotutti,
Alessandro