TODOPIC

Lenguajes de programación para PC => C, C#, C++ => Mensaje iniciado por: LordLafebre en 12 de Abril de 2006, 00:28:59

Título: Retardo de n segundos en C#
Publicado 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)
Título: Re: Retardo de n segundos en C#
Publicado por: BrunoF en 12 de Abril de 2006, 01:00:26
Hola Gio, creo que lo que estas buscando es:

Thread.Sleep(n) ;donde en n le pones el valor en ms.

Saludos
Título: Re: Retardo de n segundos en C#
Publicado por: LordLafebre en 12 de Abril de 2006, 01:14:35
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?)
Título: Re: Retardo de n segundos en C#
Publicado por: Geo en 12 de Abril de 2006, 01:21:34
Código: [Seleccionar]
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:
Código: [Seleccionar]
Imports System
Imports System.Threading
...
Thread.Sleep(tiempo)
...

Saludos,
José Jorge (Geo).
Título: Re: Retardo de n segundos en C#
Publicado por: LordLafebre en 12 de Abril de 2006, 01:50:50
Hola:

Gracias Geo, ahora si asunto solucionado... muchas gracias amigos :mrgreen:
Título: Re: Retardo de n segundos en C#
Publicado por: BrunoF en 12 de Abril de 2006, 01:58:12
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!
Título: Re: Retardo de n segundos en C#
Publicado por: LordLafebre en 12 de Abril de 2006, 02:05:06
Hola:

Gracias de todas formas Bruno, a ver, me interesa lo que comentas, me puedes explicar un poquito mas...?
Título: Re: Retardo de n segundos en C#
Publicado por: BrunoF en 12 de Abril de 2006, 02:16:38
Bueno...

Me ha gustado este ejemplo facil, asi que lo pongo y explico:

Código: [Seleccionar]

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!!!
Título: Re: Retardo de n segundos en C#
Publicado por: LordLafebre en 12 de Abril de 2006, 02:21:29
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...