TODOPIC
Lenguajes de programación para PC => C, C#, C++ => Mensaje iniciado por: LordLafebre en 12 de Abril de 2006, 00:28:59
-
Hola:
Bueno, este es un mundo nuevo para mi, yo programo en basic, y por ahora estoy introduciendome en C#.
la duda que me surge es precisamente esa, como generar un retardo de "n" segundos...? en VB a mas del timer utilizaba un api de windows:
Public Declare Sub Sleep Lib "Kernel32.dll" (ByVal time As Integer)
esta ultima me gusta ams para la aplicacion que necesito hacer...
se puede hacer algo similar en C#...?
Gracias por cualquier ayuda, Saludos...!!! 8)
-
Hola Gio, creo que lo que estas buscando es:
Thread.Sleep(n) ;donde en n le pones el valor en ms.
Saludos
-
Hola:
Bruno, esa función que libreria utiliza?, porque me da un error:
C:\LPT\Form1.cs(162): No se puede encontrar el tipo o el nombre de espacio de nombres 'Thread' (¿falta una directiva using o una referencia de ensamblado?)
-
using System;
using System.Threading;
...
Thread.Sleep( tiempo );
...
Yo no la he usado (no programo en C#, aunque quizá en algún tiempo me ponga a aprender). Algo que desconozco, es si desde C# es posible acceder a la WinAPI 32, pues tengo la idea de que no se puede, al ser un lenguaje creado exprofeso para lo del .NET.
Por cierto, en VB.NET se usaría la misma función y sería algo como esto:
Imports System
Imports System.Threading
...
Thread.Sleep(tiempo)
...
Saludos,
José Jorge (Geo).
-
Hola:
Gracias Geo, ahora si asunto solucionado... muchas gracias amigos :mrgreen:
-
Bueno...me falló al enviar la respuesta, y por lo que veo ya te pasaron la solucion! :D :D
Destaco que es posible crear mas de un Thread en un proceso, y lograr asi que se ejecuten diversas porciones de codigo de manera casi simultánea.
Exitos!
-
Hola:
Gracias de todas formas Bruno, a ver, me interesa lo que comentas, me puedes explicar un poquito mas...?
-
Bueno...
Me ha gustado este ejemplo facil, asi que lo pongo y explico:
using System;
using System.Threading;
namespace ThreadingTester
{
class ThreadClass
{
public static void trmain()
{
for(int x=0;x < 10;x++)
{
Thread.Sleep(1000);dormir este proceso durante 1000ms
Console.WriteLine(x);
}
}
static void Main(string[] args)
{
Thread thrd1=new Thread(new ThreadStart(trmain));crear un segundo hilo
thrd1.Start();comenzar el control del proceso
for(int x=0;x < 10;x++)
{
Thread.Sleep(900);dormir este proceso durante 900ms
Console.WriteLine("Main :" + x);
}
}
}
}
En el ejemplo, se crean 2 hilos(Threads).Uno que retrasa en 900ms la ejecucion, y otro que la retrasa en 1 segundo.
Esto produce una desincronizacion de 100ms por pasada de loop/s, pero permite que ambos procesos se ejecuten practicamente a la vez.
Si lo corres, veras la desincronizacion entre ambos, y el multiprocesamiento que genera.
Los Hilos son muy utiles para controlar los procesos a los cuales se los ha vinculado.
Exitos!!!
-
Hola:
GRacias por la explicacion, este ejemplo me sirve para ir aprendiendo, estoy en un curso de C# los fines de semana, y empazamos justamente por aplicaciones consola... gracias Bruno... ya sabras mas seguio de mi por estos lares...
gracias hermano...