C# xSockets和Windows Phone 8应用程序调用方法
我正在使用xSockets在WindowsPhone8上创建一个简单的聊天应用程序,但我有以下问题,运行时它说“不包含调用方法的定义”,我在某个地方读到我必须使用Dispatch,但也没有运气 我的代码:C# xSockets和Windows Phone 8应用程序调用方法,c#,windows-phone-8.1,xsockets.net,C#,Windows Phone 8.1,Xsockets.net,我正在使用xSockets在WindowsPhone8上创建一个简单的聊天应用程序,但我有以下问题,运行时它说“不包含调用方法的定义”,我在某个地方读到我必须使用Dispatch,但也没有运气 我的代码: private async void Connect() { Connection = new XSocketClient(ServerURI, Origin, "chat"); chatController = Connection.Controll
private async void Connect()
{
Connection = new XSocketClient(ServerURI, Origin, "chat");
chatController = Connection.Controller("chat");
//Handle incoming event from server: use Invoke to write to console from XSocket's thread
chatController.On<string>("addMessage", message => this.Invoke((Action)(() =>
RichTextBoxConsole.Text =(String.Format("{0}" + Environment.NewLine, message))
)));
try
{
Connection.Open();
comboBoxLocation.SelectedIndex = 0;
await chatController.SetProperty("username", UserName);
}
catch
{
StatusText.Text = "Unable to connect to server: Start server before connecting clients.";
No connection: Don't enable Send button or show chat UI
return;
}
}
private async void Connect()
{
连接=新的XSocketClient(ServerURI,源,“聊天”);
chatController=Connection.Controller(“聊天”);
//处理来自服务器的传入事件:使用Invoke从XSocket的线程写入控制台
chatController.On(“addMessage”,message=>this.Invoke((操作)(()=>
RichTextBoxConsole.Text=(String.Format(“{0}”+Environment.NewLine,message))
)));
尝试
{
Connection.Open();
comboBoxLocation.SelectedIndex=0;
等待chatController.SetProperty(“用户名”,用户名);
}
接住
{
StatusText.Text=“无法连接到服务器:在连接客户端之前启动服务器。”;
无连接:不启用发送按钮或显示聊天界面
回来
}
}
看起来您刚刚将WinForms的示例从复制到WindowsPhone 8.1项目中
我添加了一个WP8.1项目进行测试,您需要的代码是这个,而不是“调用”的东西
chatController.On(“addMessage”,message=>this.Dispatcher.RunAsync(coredipatcherpriority.Normal,()=>
{
this.Messages.Text+=String.Format(“{0}”+Environment.NewLine,message);
}));
chatController.On<string>("addMessage", message => this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
this.Messages.Text += String.Format("{0}" + Environment.NewLine, message);
}));