Visual Basic.NET - CreateThread() en VB.NET

 
Vista:

CreateThread() en VB.NET

Publicado por Sergio (1 intervención) el 26/08/2003 13:14:18
Hola que tal?

Tengo un problemilla a la hora de usar la función de la API, CreateThread. Ya sé que VB.NET posee clases para menejar Threads, pero he tenido problemas con dicha clase y prefiero no usarla... El problema es el siguiente:

Public Declare Function CreateThread Lib "kernel32" (ByVal lpThreadAttributes As Long, _
ByVal dwStackSize As Long, _
ByVal lpStartAddress As Long, _
ByVal lpParameter As Long, _
ByVal dwCreationflags As Long, _
ByRef lpThreadId As Long) As Long

He aqui que tenemos la declaración de la función de la API en VB.NET, ahora mi problema es pasar a dicha funcion el parámetro correspondiente a lpParameter, donde he de incluir la dirección de memoria que apunta al procedimiento/funcion que quiero que ejecute la hebra... Y gracias a VB.NET... no puedo... al antiguo AddressOf que antes me devolvia un Long (direccion de memoria...) ahora me devuelve una clase de tipo Delegate...

¿Como puedo hacer para que me funcione como con los antiguos VB?

Por favor, necesito ayuda URGENTE.

Gracias.
Un saludo a todos,
Sergio.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:CreateThread() en VB.NET

Publicado por Edgar (1501 intervenciones) el 26/08/2003 19:15:56
Hola

La verdad no comprendo porque quieres trabajar con el API si tienes las clases que manejan los threads. Por que no nos explicas cuales han sido los problemas que has tenido con la clase threads a ver si te podemos ayudar con eso?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

CreateThread() en VB.NET y en VC++

Publicado por Paco (1 intervención) el 27/09/2007 01:24:35
Puedes pasar un valor nullo ya que en visual basic no puedes usar apuntadores.

en visual c tienes que pasar la dirección de una estructura.

ej.

struct ejemplo
{
int numero;
char c;
}

DWORD ThreadProc(LPVOID miestructura)
{
struct ejemplo *ej;
ej=(struct ejemplo *)miestructura;
ej->numero=0;
ej->c='h'
return 0;
}

int main()
{
struct ejemplo miej;
DWORD *id;
CreateThread(null,ThreadProc,miej,null,id);
return 0;
}

los null van con mayúsculas.

Paco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar