Exemple #1
0
        public async Task RunAsync()
        {
            var executor    = new SingleThreadExecutor();
            var tokenSource = new CancellationTokenSource();

            ConsoleCancelEventHandler handler = (s, e) =>
            {
                e.Cancel = true;
                // Violate condition #2
                Task.Run(() => tokenSource.Cancel());
            };

            Console.CancelKeyPress += handler;

            try
            {
                await Task.Delay(TimeSpan.FromHours(1.0), tokenSource.Token);
            }
            catch (OperationCanceledException)
            {
                Console.WriteLine("Cancelled");
            }

            Console.CancelKeyPress -= handler;
        }
Exemple #2
0
        public async Task RunAsync()
        {
            var executor = new SingleThreadExecutor();

            var tokenSource = executor.Execute(() => new CancelKeyPressedTokenSource());

            try
            {
                await Task.Delay(TimeSpan.FromHours(1.0), tokenSource.Token);
            }
            catch (OperationCanceledException)
            {
                Console.WriteLine("Cancelled");
            }

            executor.Execute(() => tokenSource.Dispose());
        }
        private UdpReceiver(IPEndPoint endPointToConnect, int responseReceivingPort,
                            IPEndPoint endPointToBind,
                            bool reuseAddressFlag, short ttl, bool allowBroadcast, IPAddress multicastGroup, bool multicastLoopbackFlag)
        {
            using (EneterTrace.Entering())
            {
                myEndPointToConnect     = endPointToConnect;
                myResponseReceivingPort = responseReceivingPort;
                myEndPointToBind        = endPointToBind;
                myReuseAddressFlag      = reuseAddressFlag;
                myTtl = ttl;
                myAllowBroadcastFlag    = allowBroadcast;
                myMulticastGroup        = multicastGroup;
                myMulticastLoopbackFlag = multicastLoopbackFlag;

                myWorkingThreadDispatcher = new SingleThreadExecutor();
            }
        }
Exemple #4
0
        static void TestFutures()
        {
            IExecutor executor = new SingleThreadExecutor();

            Promise p = new Promise();

            Future f = p.GetFuture().Then(result =>
            {
                int ret = (int)result;
                Console.WriteLine("result is " + ret);
                ret++;
                return(ret);
            }).Then(result =>
            {
                int ret = (int)result;
                Console.WriteLine("result is " + ret);
                ret++;
                return(ret);
            }).Via(executor).Then(result =>
            {
                Console.WriteLine("result is " + result);
                int id = (int)result;
                return(new Person(id));
            }).Via(executor).Then(result =>
            {
                Person ps = (Person)result;
                Console.WriteLine("person id is " + ps.id + " name is " + ps.name);
                return(ps);
            });


            p.SetValue(1);

            Person ps = (Person)f.Get();

            Console.WriteLine("person id is " + ps.id + " name is " + ps.name);
        }
Exemple #5
0
 public TalkViewModel()
 {
     _executor = new SingleThreadExecutor();
     _model.TalkSubject.Subscribe(AddMessage);
 }