[CCR] Не понятна работа Choice
От: cadet354 Россия
Дата: 26.11.08 08:57
Оценка:
Доброго времени, не понятно как работает Choice,
private static void Main(string[] args)
        {
            var dispatcher = new Dispatcher();
            
            var taskQueue = new DispatcherQueue("simple queue", dispatcher);
            var port_set = new PortSet<int, Exception>();
            Arbiter.Activate(taskQueue,
                             Arbiter.Choice(port_set,
                                            val =>
                                            {
                                                  Console.WriteLine("{0} time={1}", val, DateTime.Now);   
                                            },
                                            exc => Console.WriteLine(exc.Message))
                );
            port_set.Post(new Exception("test exception"));
                        //Thread.Sleep(250); если раскоментировать то выведет test exception
            port_set.Post(10); //выводит 10
        }

в описании пишут что:

The Choice operates a simple first-come, first-served policy

я думал, что первым придет то и отработает
P.S. Если поменять местами отправку 10 и exception, то все равно выводится 10, странный какой то приоритет над exception
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.