Autor Tema: Retardo de n segundos en C#  (Leído 42826 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Retardo de n segundos en C#
« 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)
« Última modificación: 12 de Abril de 2006, 00:35:56 por LordLafebre »

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Retardo de n segundos en C#
« Respuesta #1 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
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Retardo de n segundos en C#
« Respuesta #2 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?)

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Retardo de n segundos en C#
« Respuesta #3 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).
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Retardo de n segundos en C#
« Respuesta #4 en: 12 de Abril de 2006, 01:50:50 »
Hola:

Gracias Geo, ahora si asunto solucionado... muchas gracias amigos :mrgreen:

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Retardo de n segundos en C#
« Respuesta #5 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!
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Retardo de n segundos en C#
« Respuesta #6 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...?

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Retardo de n segundos en C#
« Respuesta #7 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!!!
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Retardo de n segundos en C#
« Respuesta #8 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...


 

anything