DLL vb6 chiamata da c# non sembra essere multithread... possibile???

venerdì 02 ottobre 2009 - 11.41

Jackomo Profilo | Newbie

Salve a tutti,
sto facendo alcune prove per un meccanismo cui purtroppo mi vedo costretto ma ottengo un risultato che non mi convince. Vi chiedo quindi innanzitutto di capire se quello che si verifica è normale, ed inoltre vi chiedo di escogitare un work-around per ottenere comunque il risultato che mi serve.

Ho del codive vb6 che devo riciclare per evitare di portarlo ex novo su c# dove sto al momento sviluppando (su VS2008). Ho pensato di compilare il codice scirtto in vb6 come una DLL ed importarla sul mio progetto c#. Ho fatto quindi la seguente prova: ho scritto una semplicissima classe vb6 con un metodo che semplicemente dorme 10 secondi e poi restituisce un valore. Dal progetto c# poi ho creato due thread che fanno ognuno due diverse istanze dell'oggetto importato dalla DLL vb6. Ebbene i due thread risultano serializzati: cioè il primo finisce ovviamente dopo 10 secondi, ed il secondo dopo 20.
Preciso che la DLL vb6 l'ho compilata con apartament-threading.

Possibile che non si riesca a chiamare una DLL in modo multithreaded, a me interessa anche semplicemente ciascun thread per fatti suoi (credo sia il modello apartament-threading no?)

Inoltre visto che il codice che dovrei riutilizzare non è scritto ad oggetti, ma in maniera procedurale su moduli .bas, vi chiedo se è possibile fare una DLL in cui non debba passare per l'istanziazione di un oggetto (e quindi poi chiamarne un metodo) ma in cui possa chiamare direttamente una funzione.

Grazie anticipatamente.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5