cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 2014
-
2 oct. 2004 à 12:06
gimli123
Messages postés78Date d'inscriptionsamedi 18 septembre 2004StatutMembreDernière intervention 5 janvier 2007
-
28 mars 2005 à 12:03
Salut à tous je recherche à traduire le code CSharp suivant en VB ou VB.Net. Merci pour votre aide.
private System.Timers.Timer SaveTimer;
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.ServiceProcess;
public Service1()
{
// This call is required by the Windows.Forms Component Designer.
InitializeComponent();
}
// The main entry point for the process
static void Main()
{
System.ServiceProcess.ServiceBase[] ServicesToRun;
// More than one user Service may run within the same process. To add
// another service to this process, change the following line to
// create a second service object. For example,
//
// ServicesToRun = new System.ServiceProcess.ServiceBase[] {new Service1(), new MySecondUserService()};
//
ServicesToRun = new System.ServiceProcess.ServiceBase[] { new Service1() };
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.SaveTimer = new System.Timers.Timer(100);
//
// SaveTimer
//
this.SaveTimer.Elapsed += new System.Timers.ElapsedEventHandler(this.SaveTimer_Tick);
//
// test timer service
//
this.ServiceName = "Test Timer Service";
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
/// <summary>
/// Set things in motion so your service can do its work.
/// </summary>
protected override void OnStart(string[] args)
{
SaveTimer.Enabled = true;
}
/// <summary>
/// Stop this service.
/// </summary>
protected override void OnStop()
{
}
private void SaveTimer_Tick(object sender,System.Timers.ElapsedEventArgs e)
{
// Do something here
}
}
}
gg00xiv
Messages postés656Date d'inscriptionmercredi 22 août 2001StatutMembreDernière intervention11 mars 200513 3 oct. 2004 à 13:51
Ton Timer ne réagit pas pour une bonne raison:
Le Control Timer ne crée pas de Thread pour s'exécuter, il utilise le Thread en cours.
Or, un service en .NET lors que tu cliques sur "Démarrer", lance la méthode OnStart dans un Thread (le premier) puis à la fin de cette méthode, ce Thread se termine. Et don ton Timer aussi.
Pour remédier à ce souci, il te faut créer un Thread d'exécution pour ton service dans la méthode OnStart, et ce sera ce Thread qui exécutera le corps de ton service. D'autre part, il s'agit de la méthode la plus correcte de développer un service en .NET.
TheSaib
Messages postés2367Date d'inscriptionmardi 17 avril 2001StatutMembreDernière intervention26 décembre 200723 2 oct. 2004 à 15:57
Tu te fou de nous ????
C'est quasiment le code de base généré par VS.NET quand tu crée un nouveau service en c#. Pour avoir la version VB tu crées un nouveau service dans les projets VB ....
cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 201416 2 oct. 2004 à 17:23
Hmm tu est bien gentil TheSaib, mais je connais rien au CSharp. Mais effectivement c'est bien pour un service VB, mon pb c'est que j'ai un timer qui n'est pas pris en charge, c'est à dire il ne se lance jamais.
As-tu une solution ?