示例#1
0
文件: Program.cs 项目: ArturD/Daemons
        static void Main(string[] args)
        {
            var config = DaemonConfig
                .Default()
                .WithMq((conf => conf.WithUdpEmCaster(emcasterConfig =>
                                                          {
                                                              emcasterConfig.AddStressTestLayer(0.1);
                                                              emcasterConfig.AddReliabilityLayer(TimeSpan.FromSeconds(1));
                                                              emcasterConfig.AddRoute("chat");
                                                              emcasterConfig.AddRoute(@"chat/[\w]*");
                                                          })));
            var bus = config.BuildMessageBus();

            Console.Write("Enter user name : ");
            var userName = Console.ReadLine();
            Console.Write("Enter channel : #");
            var channel = Console.ReadLine();

            var daemon = new ThreadPoolDaemon();
            daemon.Schedule(
                () =>
                    {
                        bus.Subscribe<UserJoined>("chat",
                            message => Console.WriteLine("# " + message.UserName + " joined #" + message.Channel));
                        bus.Subscribe<UserMessage>(string.Format(@"chat\{0}", channel),
                            message => Console.WriteLine("{0}>{1}", message.UserName, message.Message));
                        bus.Publish("chat", new UserJoined {Channel = channel, UserName = userName});

                    });
            while (true)
            {
                var line = Console.ReadLine();
                bus.Publish(string.Format(@"chat\{0}", channel), new UserMessage() { Message = line, UserName = userName });
            }
        }
示例#2
0
        static void Main(string[] args)
        {
            if (args.Length >= 1)
            {
                _processNo = int.Parse(args[0]);
            }
            if (args.Length >= 2)
            {
                _messagesPerProcess = int.Parse(args[1]);
            }

            _countArray = new int[_processNo];

            _start = DateTime.UtcNow;

            _countDown = _processNo;
            for (int i = 0; i < _processNo; i++)
            {
                int i1     = i; // copy is required, so that closure works as intendent
                var daemon = new ThreadPoolDaemon();
                daemon.Schedule(() => Increment(daemon, i1));
            }

            Console.ReadLine();
        }
示例#3
0
        static void Main(string[] args)
        {
            var daemon = new ThreadPoolDaemon();
            var topic  = new Topic <string>();

            topic.Subscribe(daemon, (line) => Console.WriteLine(line));
            topic.Publish("Hello World !");
            topic.Publish("Press Any Key ...");
            Console.ReadKey();
        }
示例#4
0
文件: Program.cs 项目: ArturD/Daemons
        static void Main(string[] args)
        {
            var config = DaemonConfig
                         .Default()
                         .WithMq((conf => conf.WithUdpEmCaster(emcasterConfig =>
            {
                emcasterConfig.AddStressTestLayer(0.1);
                emcasterConfig.AddReliabilityLayer(TimeSpan.FromSeconds(1));
                emcasterConfig.AddRoute("chat");
                emcasterConfig.AddRoute(@"chat/[\w]*");
            })));
            var bus = config.BuildMessageBus();

            Console.Write("Enter user name : ");
            var userName = Console.ReadLine();

            Console.Write("Enter channel : #");
            var channel = Console.ReadLine();

            var daemon = new ThreadPoolDaemon();

            daemon.Schedule(
                () =>
            {
                bus.Subscribe <UserJoined>("chat",
                                           message => Console.WriteLine("# " + message.UserName + " joined #" + message.Channel));
                bus.Subscribe <UserMessage>(string.Format(@"chat\{0}", channel),
                                            message => Console.WriteLine("{0}>{1}", message.UserName, message.Message));
                bus.Publish("chat", new UserJoined {
                    Channel = channel, UserName = userName
                });
            });
            while (true)
            {
                var line = Console.ReadLine();
                bus.Publish(string.Format(@"chat\{0}", channel), new UserMessage()
                {
                    Message = line, UserName = userName
                });
            }
        }
示例#5
0
        static void Main(string[] args)
        {
            if (args.Length >= 1)
            {
                _processNo = int.Parse(args[0]);
            }
            if (args.Length >= 2)
            {
                _messagesPerProcess = int.Parse(args[1]);
            }

            _start = DateTime.UtcNow;

            _countDown = _processNo;
            for (int i = 0; i < _processNo; i++)
            {
                Topic <int> topic  = new Topic <int>();
                var         daemon = new ThreadPoolDaemon();
                topic.Subscribe(daemon, (msg) => Increment(topic, msg));
                topic.Publish(0);
            }

            Console.ReadLine();
        }
示例#6
0
文件: Program.cs 项目: ArturD/Daemons
 static void Main(string[] args)
 {
     _daemon = new ThreadPoolDaemon();
     GoOne();
     Console.ReadKey();
 }
示例#7
0
文件: Program.cs 项目: ArturD/Daemons
 static void Main(string[] args)
 {
     _daemon = new ThreadPoolDaemon();
     GoOne();
     Console.ReadKey();
 }