@@ -9,31 +9,33 @@ class Program
9
9
public static void Main ( )
10
10
{
11
11
var factory = new ConnectionFactory ( ) { HostName = "localhost" } ;
12
- using ( var connection = factory . CreateConnection ( ) )
13
- using ( var channel = connection . CreateModel ( ) )
12
+ using ( var connection = factory . CreateConnection ( ) )
13
+ using ( var channel = connection . CreateModel ( ) )
14
14
{
15
- channel . QueueDeclare ( queue : "task_queue" , durable : true , exclusive : false , autoDelete : false , arguments : null ) ;
15
+ channel . QueueDeclare ( queue : "task_queue" , durable : true , exclusive : false , autoDelete : false , arguments : null ) ;
16
16
17
- channel . BasicQos ( prefetchSize : 0 , prefetchCount : 1 , global : false ) ;
18
- var consumer = new QueueingBasicConsumer ( channel ) ;
19
- channel . BasicConsume ( queue : "task_queue" , noAck : false , consumer : consumer ) ;
17
+ channel . BasicQos ( prefetchSize : 0 , prefetchCount : 1 , global : false ) ;
20
18
21
- Console . WriteLine ( " [*] Waiting for messages. To exit press CTRL+C" ) ;
22
- while ( true )
23
- {
24
- var ea = ( BasicDeliverEventArgs ) consumer . Queue . Dequeue ( ) ;
19
+ Console . WriteLine ( " [*] Waiting for messages." ) ;
25
20
21
+ var consumer = new EventingBasicConsumer ( channel ) ;
22
+ consumer . Received += ( model , ea ) =>
23
+ {
26
24
var body = ea . Body ;
27
- var message = Encoding . UTF8 . GetString ( body ) ;
28
- Console . WriteLine ( " [x] Received {0}" , message ) ;
25
+ var message = Encoding . UTF8 . GetString ( body ) ;
26
+ Console . WriteLine ( " [x] Received {0}" , message ) ;
27
+
28
+ int dots = message . Split ( '.' ) . Length - 1 ;
29
+ Thread . Sleep ( dots * 1000 ) ;
29
30
30
- int dots = message . Split ( '.' ) . Length - 1 ;
31
- Thread . Sleep ( dots * 1000 ) ;
31
+ Console . WriteLine ( " [x] Done" ) ;
32
32
33
- Console . WriteLine ( " [x] Done" ) ;
33
+ channel . BasicAck ( deliveryTag : ea . DeliveryTag , multiple : false ) ;
34
+ } ;
35
+ channel . BasicConsume ( queue : "task_queue" , noAck : false , consumer : consumer ) ;
34
36
35
- channel . BasicAck ( deliveryTag : ea . DeliveryTag , multiple : false ) ;
36
- }
37
+ Console . WriteLine ( " Press [enter] to exit." ) ;
38
+ Console . ReadLine ( ) ;
37
39
}
38
40
}
39
41
}
0 commit comments