using System; using System.Threading; using System.Threading.Tasks; using WampSharp.V2; using WampSharp.V2.Rpc; using System.Collections.Generic; namespace MyNamespace { public interface IArgumentsService { [WampProcedure("com.arguments.LongString")] string LongString(int waitMs); [WampProcedure("com.arguments.ShortString")] string ShortString(int waitMs); } internal class Program { public static async Task Main(string[] args) { DefaultWampChannelFactory factory = new DefaultWampChannelFactory(); const string serverAddress = "ws://127.0.0.1:8080/ws"; IWampChannel channel = factory.CreateJsonChannel(serverAddress, "realm1"); channel.Open().Wait(5000); IArgumentsService proxy = channel.RealmProxy.Services.GetCalleeProxy(); List Tasks = new List(); Tasks.Add(Task.Run(() => { Console.WriteLine($"long str Thread:{Thread.CurrentThread.ManagedThreadId}"); string l = proxy.LongString(0); Console.WriteLine($"long returned, len {l.Length}"); })); Tasks.Add(Task.Run(() => { Console.WriteLine($"short str Thread:{Thread.CurrentThread.ManagedThreadId}"); string l = proxy.ShortString(100); Console.WriteLine($"short returned, len {l.Length}"); })); await Task.WhenAll(Tasks); } } }