Example #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 async Task WhenAddedAsync()
        {
            const int expectedKey = 9;

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

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

            string result = await dict.WhenAdded((k, v) => k == expectedKey).GetValueAsync();

            Assert.AreEqual(expectedKey.ToString(), result);
        }
        public async Task WhenAddedAsync()
        {
            const int expectedKey = 9;

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

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

            string result = await dict.WhenAdded((k, v) => k == expectedKey).GetValueAsync();

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