MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 14 févr. 2005 à 20:39
Plutot que d'utiliser un thread qui attend pour toi, pourquoi tu fixes
pas la valeur du timeout dans la chaine de connexion ? Il me semble que
c'est faisable.
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 15 févr. 2005 à 09:37
Voila un petit exemple d'utilisation avec un Thread.
J'ai mis toute la partie connexion dans une classe a part, et j'utilise un singleton pour acceder a ses objets
Plus utilisation d'un coupe Délégué / Event pour prévenir la classe principale de si la connexion est ouverte ou non.
Ca marche dans le principe, par contre je sais pas si c'est "conceptuellement correct", j'ai encore beaucoup a apprendre.
using
System;
using System.Data;
using System.Data.SqlClient;
using System.Threading;
namespace Essai
{
class MainClass
{
public Database db;
[STAThread]
public static void Main(string[] args)
{
MainClass c1 = new MainClass();
}
public MainClass()
{
db = Database.Instance;
db.ReceivedMessage += new Essai.Database.EventReceivedMessage(db_ReceivedMessage);
Console.ReadLine();
}
private void db_ReceivedMessage(bool connectionState)
{
switch(connectionState)
{
case true:
Console.WriteLine("Message du Thread principal : Le connexion est ouverte");
break;
case false:
Console.WriteLine("Message du Thread principal : Erreur lors de la connexion");
break;
}
}
}
public class Database
{
public static Database Instance = new Database();
public delegate void EventReceivedMessage(bool connectionState);
public event EventReceivedMessage ReceivedMessage;