K
Kimmo Laine
Hi,
is there a (built in) way to use MSMQ as a "timer":
MessageQueue mq;
// . . .
mq.ReceiveCompleted += new ReceiveCompletedEventHandler( MyMSMQHandler );
// . . .
private void Foo() {
mq.Send( /* Send MY_MSG_CODE without delay *& );
}
private void MyMSMQHandler( object sender, ReceiveCompletedEventArgs e ) {
MessageQueue q = ( MessageQueue )sender;
Message msg = q.EndReceive( e.AsyncResult );
if( msg.AppSpecific == MY_MSG_CODE ) {
// If i can do something - do it
} else {
// Wait a moment and try again
q.Send( /* Send MY_MSG_CODE with delay */ );
}
q.BeginReceive();
}
thx
Kimmo Laine
is there a (built in) way to use MSMQ as a "timer":
MessageQueue mq;
// . . .
mq.ReceiveCompleted += new ReceiveCompletedEventHandler( MyMSMQHandler );
// . . .
private void Foo() {
mq.Send( /* Send MY_MSG_CODE without delay *& );
}
private void MyMSMQHandler( object sender, ReceiveCompletedEventArgs e ) {
MessageQueue q = ( MessageQueue )sender;
Message msg = q.EndReceive( e.AsyncResult );
if( msg.AppSpecific == MY_MSG_CODE ) {
// If i can do something - do it
} else {
// Wait a moment and try again
q.Send( /* Send MY_MSG_CODE with delay */ );
}
q.BeginReceive();
}
thx
Kimmo Laine