C# 具有基于桌面的实时应用程序的信号器

C# 具有基于桌面的实时应用程序的信号器,c#,signalr,desktop-application,C#,Signalr,Desktop Application,我一直认为signal非常适合实时基于浏览器的应用程序 一般来说,将服务器端处理消息推送到客户端,即“侦听”网页 对于不是web应用程序而是桌面应用程序的客户端,也可以这样做,实时推送它?简而言之,是的。例如,github上的示例向您展示了如何使用,wiki中的文档向您展示了如何使用。引用该文档(警告,取决于版本,它现在可以工作,但将来可能会有所不同): var hubConnection=新的hubConnection(“http://www.contoso.com/"); IHubProxy

我一直认为
signal
非常适合实时基于浏览器的应用程序

一般来说,将服务器端处理消息推送到客户端,即“侦听”网页


对于不是web应用程序而是桌面应用程序的客户端,也可以这样做,实时推送它?

简而言之,是的。例如,github上的示例向您展示了如何使用,wiki中的文档向您展示了如何使用。引用该文档(警告,取决于版本,它现在可以工作,但将来可能会有所不同):

var hubConnection=新的hubConnection(“http://www.contoso.com/");
IHubProxy stockTickerHubProxy=hubConnection.CreateHubProxy(“StockTickerHub”);
stockTickerHubProxy.On(“UpdateStockPrice”,stock=>Console.WriteLine(“股票更新为{0}新价格{1}”,stock.Symbol,stock.price));
stockTickerHub.On(“通知”),()=>
//上下文是对SynchronizationContext.Current的引用
Context.Post(委托
{
textBox.Text+=“已通知!\n”;
},空)
);    
等待连接。开始();
//或对同步方法执行以下操作:
//connection.Start().Wait();

请参阅以获取上述代码。

简而言之,是。例如,github上的示例向您展示了如何使用,wiki中的文档向您展示了如何使用。引用该文档(警告,取决于版本,它现在可以工作,但将来可能会有所不同):

var hubConnection=新的hubConnection(“http://www.contoso.com/");
IHubProxy stockTickerHubProxy=hubConnection.CreateHubProxy(“StockTickerHub”);
stockTickerHubProxy.On(“UpdateStockPrice”,stock=>Console.WriteLine(“股票更新为{0}新价格{1}”,stock.Symbol,stock.price));
stockTickerHub.On(“通知”),()=>
//上下文是对SynchronizationContext.Current的引用
Context.Post(委托
{
textBox.Text+=“已通知!\n”;
},空)
);    
等待连接。开始();
//或对同步方法执行以下操作:
//connection.Start().Wait();

请参阅以获取上述代码。

我在.NET客户机周围制作了一个包装器,使在本地客户机上实现侦听器变得非常容易

设置好后,只需添加一个侦听器,如

public class MyViewModel : IHandle<MyEvent>
{
   public MyViewModel(IEventAggregator eventAggregator) 
   {
      eventAggregator.Subscribe(this);
   }
   public void Handle(MyEvent message)
   {
      //Act on MyEvent
   }
}
公共类MyViewModel:IHandle
{
公共MyViewModel(IEventAggregator事件聚合器)
{
eventAggregator.Subscribe(此);
}
公共无效句柄(MyEvent消息)
{
//对MyEvent采取行动
}
}

我在.NET客户机上做了一个包装器,使在本地客户机上实现侦听器变得非常容易

设置好后,只需添加一个侦听器,如

public class MyViewModel : IHandle<MyEvent>
{
   public MyViewModel(IEventAggregator eventAggregator) 
   {
      eventAggregator.Subscribe(this);
   }
   public void Handle(MyEvent message)
   {
      //Act on MyEvent
   }
}
公共类MyViewModel:IHandle
{
公共MyViewModel(IEventAggregator事件聚合器)
{
eventAggregator.Subscribe(此);
}
公共无效句柄(MyEvent消息)
{
//对MyEvent采取行动
}
}

你在问我之前试过搜索吗?是的,我试过,但我没有运气。你在问我之前试过搜索吗?是的,我试过,但我没有运气