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 }); } }
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(); }
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(); }
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 }); } }
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(); }
static void Main(string[] args) { _daemon = new ThreadPoolDaemon(); GoOne(); Console.ReadKey(); }