Foros del Web » Programación para mayores de 30 ;) » .NET »

un timer en una dll

Estas en el tema de un timer en una dll en el foro de .NET en Foros del Web. Hola gente aquí de nuevo, Me podrían orientar para lo siguiente, quiero que en una dll, haiga un timer que vaya realizando cierto proceso, sin ...
  #1 (permalink)  
Antiguo 11/04/2012, 16:30
 
Fecha de Ingreso: julio-2008
Mensajes: 116
Antigüedad: 15 años, 9 meses
Puntos: 1
Pregunta un timer en una dll

Hola gente aquí de nuevo,

Me podrían orientar para lo siguiente,

quiero que en una dll, haiga un timer que vaya realizando cierto proceso, sin embargo con lo que tengo no hace lo que pretengo, de ejemplo pongo lo siguiente:


la dll
Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;'

namespace ejemplodll
{
     public class clsejemplo
     {
            // propiedades  
           private System.Windows.Forms.Timer Tiempo;
           int _segundos;
        public int Segundos
        {
            get { return _segundos; }
        }
public clsejemplo()
        {
            _segundos = 0;
            Tiempo.Tick += new EventHandler(Tiempo_tick);
            Tiempo.Interval = 1000;
        }
            //metodos
        private void Contar()
        {
               _segundos++;
             
         }
         void Tiempo_tick(object sender, EventArgs e)
        {
            Contar();
        }
     }
}

en otro proyecto
Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ejemplodll;
namespace otroproyecto
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        clsejemplo objeto;
        private void Form1_Load(object sender, EventArgs e)
        {
           objeto = new clsejemplo();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Text = objeto.Segundos.ToString();
        }
    }
}
espero haber dado a entender.

anticipadamente gracias,saludos
  #2 (permalink)  
Antiguo 11/04/2012, 21:53
Avatar de ramirezmario7  
Fecha de Ingreso: febrero-2008
Ubicación: Medellín
Mensajes: 336
Antigüedad: 16 años, 2 meses
Puntos: 56
Respuesta: un timer en una dll

Hola.
Una pregunta.
Ese textbox al cual le deseas asignar el valor del timer tiene que estar en tu formulario?, si creas un control de usuario con un timer y un textbox no te serviria.
__________________
Mario Ramírez
Desarrollador .NET MCTS
https://www.mcpvirtualbusinesscard.c...nteractivecard
  #3 (permalink)  
Antiguo 11/04/2012, 22:29
Avatar de ramirezmario7  
Fecha de Ingreso: febrero-2008
Ubicación: Medellín
Mensajes: 336
Antigüedad: 16 años, 2 meses
Puntos: 56
Respuesta: un timer en una dll

Hola.
Estuve probando y de pronto te sirve este código.
Pruébalo y comenta como te fue.

La DLL
Código:
using System;
using System.Windows.Forms;


namespace Contador
{
    public class contador
    {
        private Timer objtimer = new Timer();
        private TextBox txt;

        public contador(TextBox textBox)
        {
            Segundos = 0;
            objtimer.Start();
            objtimer.Tick += new EventHandler(objtimer_Tick);
            objtimer.Interval = 100;
            txt = textBox;
            
        }

        void objtimer_Tick(object sender, EventArgs e)
        {
            Segundos++;
            txt.Text = Segundos.ToString();
        }

        private int Segundos { get; set; }
    }
}
codigo en el formulario que usa la dll
Código:
using System;
using System.Windows.Forms;
using Contador;

namespace WindowsFormsApplication1
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }        

        private void Form2_Load(object sender, EventArgs e)
        {
            contador obj = new contador(this.textBox1);
        }
    }
}
__________________
Mario Ramírez
Desarrollador .NET MCTS
https://www.mcpvirtualbusinesscard.c...nteractivecard
  #4 (permalink)  
Antiguo 12/04/2012, 11:53
 
Fecha de Ingreso: julio-2008
Mensajes: 116
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: un timer en una dll

hola buen día, primeramente gracias por responder. El objetivo de poner un timer se cumple, revisando el código me tomo con algunas dudas (que quizás tenga que repasar algunos conceptos, pues a leerle verdad). Si no es mucho abuso de la ayuda, que pasa con el textbox que no se pueda con una variable(por ejemplo), para que como pretendia hacerlo, yo pueda accesar al objtimer y obtener el valor de los segundos transcurridos. Bueno quizás si me explico que quiero hacerme sea más claro.

La idea del contador en la dll, es que este contabilice el tiempo en segundos, minutos, horas. Lo que se quiere hacer es algo como un administrador de procesos, por ejemplo, que un intervalo de tiempo realice un procesos, y así en tiempo diferentes se estará haciendo algo. Según yo pretendo que la dll lleve el control del tiempo, y desde el proyecto original solo consultar el tiempo y ya hacer la tarea programada. Espero que me haya dado a enteder y me puedan orientar con esto.

Nuevamente muchas gracias.

PD. explique todo para haber si me explico mejor, la finalidad del timer en la dll.
  #5 (permalink)  
Antiguo 12/04/2012, 15:47
 
Fecha de Ingreso: julio-2008
Mensajes: 116
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: un timer en una dll

Bueno ahí moviendo le pues al parecer ya tengo lo que necesitaba, sobre tu código que proporcionaste, le hice unos ajuste agregándole un método que cuenta y valida y reinicia el contador. Luego con la clase la use en arreglo, esto ultimo para que haya varios contador a la ves para los diversos procesos. Ahora le meteré unos delegados.

Gracias por tu ayuda me sirvió de mucho. Saludos

Y por ultimo les agradecería que si pueden sugerir alguna forma para crear el dichoso administrador de procesos. Mientras continué con mi dll que creo que no ando tan perdido jeje

Etiquetas: c#
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:57.