Exemplo n.º 1
0
 private Task <RpcMessage> CreateReceiveMessageTask(RpcRequest request)
 {
     return(receivedMessages.WhenAdded(id => id == request.Id)
            .GetAsync()
            .ContinueWith(t =>
     {
         KeyValuePair <int, RpcMessage> result = t.Result;
         receivedMessages.Remove(result.Key);
         return result.Value;
     }));
 }
        public void WhenRemovedGet()
        {
            const int expectedKey = 9;

            var dict = new WhenableDictionary<int, string>();

            Task.Delay(100).ContinueWith(t =>
            {
                for (int i = 0; i < expectedKey + 1; i++)
                {
                    dict.Add(i, i.ToString());
                }
                for (int i = expectedKey; i > 0; i--)
                {
                    dict.Remove(i);
                }
            });

            string result = dict.WhenRemoved((k, v) => k == expectedKey).GetValue();

            Assert.AreEqual(expectedKey.ToString(), result);
        }
        public void WhenRemovedGet()
        {
            const int expectedKey = 9;

            var dict = new WhenableDictionary <int, string>();

            Task.Delay(100).ContinueWith(t =>
            {
                for (int i = 0; i < expectedKey + 1; i++)
                {
                    dict.Add(i, i.ToString());
                }
                for (int i = expectedKey; i > 0; i--)
                {
                    dict.Remove(i);
                }
            });

            string result = dict.WhenRemoved((k, v) => k == expectedKey).GetValue();

            Assert.AreEqual(expectedKey.ToString(), result);
        }