Exemplo n.º 1
0
        static async Task TestChannelReceiver(string connStr)
        {
            Console.WriteLine("TestChannel Receiver");
            Console.WriteLine("Receiving ...");
            Console.WriteLine();

            while (true)
            {
                using (var conn = new SqlConnection(connStr))
                    using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                    {
                        conn.Open();

                        var received = await ChannelClient.Receive <MyPayload>(
                            conn,
                            "TestChannel",
                            new System.Threading.CancellationTokenSource().Token);

                        if (received != null)
                        {
                            Console.WriteLine("Received: {0}", received);
                        }
                        else
                        {
                            Console.WriteLine("...");
                        }

                        Console.Write("    Fake Processing Message ");
                        for (var x = 0; x < 5; x++)
                        {
                            await Task.Delay(TimeSpan.FromSeconds(1));

                            Console.Write(".");
                        }
                        Console.WriteLine();

                        scope.Complete();
                    }
            }
        }
Exemplo n.º 2
0
        static async Task TestChannelSender(string connStr)
        {
            Console.WriteLine("TestChannel Sender");
            Console.WriteLine("Type a message per line to send.");
            Console.WriteLine();

            while (true)
            {
                using (var conn = new SqlConnection(connStr))
                    using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                    {
                        conn.Open();

                        var message = Console.ReadLine();

                        await ChannelClient.Send(
                            conn,
                            "TestChannel",
                            new MyPayload(message));

                        scope.Complete();
                    }
            }
        }