Bonjour,
je suis nouveau en C# et j'essaie de me faire des classes intelligentes .. mais j'ai bien peur qu'elles ne soient plus intelligentes que moi. Voici mon problème : ( j'ai enlevé les properties ... pour etre le plus synthétique possible )
au passage RV est une techno TIBCO qui permet de faire du temps réel ... ( c'est comme si on faisait de l'udp mais avec la notion de sujet auquel on souscrit ... )
public class RVConsumer :
{
private Thread t;
private System.Collections.Queue myQueue;
private bool isListenning = false;
private string network;
private string service;
private string daemon;
private string subject;
// Constructor
public RVConsumer(string mService, string mNetwork, string mDaemon, string mSubject)
{
Network = mNetwork;
Daemon = mDaemon;
Service = mService;
Subject = mSubject;
}
//Realtime status
public void start()
{
isListenning = true;
t = new Thread(new ThreadStart(listen));
t.Name = this.ToString();
// listen();
}
public void restart()
{
stop();
isListenning = true;
t = new Thread(new ThreadStart(listen));
}
public void stop()
{
isListenning = false;
t.Abort();
}
// Reception Message and event
private void listen()
{
try
{
TIBCO.Rendezvous.Environment.Open();
Transport transport = null;
transport = new NetTransport(Service,Network,Daemon);
Listener listener = new Listener(Queue.Default,transport,Subject,null);
listener.MessageReceived += new MessageReceivedEventHandler(OnMessageReceived); // --> ici je place ma fonction dans la pile d'execution sur reception d'un message ...
while (isListenning)
{
Queue.Default.Dispatch();
}
TIBCO.Rendezvous.Environment.Close();
}
catch (RendezvousException exception)
{
System.Diagnostics.Debug.WriteLine("Exception while listenning :");
System.Diagnostics.Debug.WriteLine(exception.Message);
}
}
void OnMessageReceived(object listener,MessageReceivedEventArgs messageReceivedEventArgs)
{
Message message = messageReceivedEventArgs.Message;
if (myQueue == null) {myQueue = new System.Collections.Queue();}
myQueue.enqueue(message); // --> et la c'est le drame ... je n'arrive pas a empiler ...
}
}
}
Pouvez vous m'aider ? et d'ou sort le Invoke que je lis partout ... sachant que la classe qui va gérer celle ci n'est pas un formulaire ???
d'avance merci