当前位置: 首页 > 编程语言 > C#

SignalR——如何在集线器中执行异步任务?分享

时间:2023-04-11 02:32:13 C#

SignalR-如何在集线器中执行异步任务?我正在尝试使用C#5异步/等待功能创建SignalR应用程序,但每当代码运行时,它都会抛出System.InvalidOperationException。这是重现问题的最简单代码。publicclassSampleHub:Hub{publicTaskGetGoogle(){varhttp=newWebClient();返回http.DownloadStringTaskAsync("http://www.google.com");}}异常详情:此时无法启动异步操作。异步操作只能在异步处理程序或模块内启动,或者在页面生命周期中的某些事件发生时启动。如果在执行页面时发生此异常,请确保将页面标记为。堆栈跟踪:在System.Web.AspNetSynchronizationContext.OperationStarted()在System.Net.WebClient.DownloadStringAsync(Uri地址,对象userToken)地址)在客户端,Javascript看起来像这样。$.connection.hub.start().done(function(){$('#google').click(function(){vargoogle=sample.server.getGoogle();console.log(google);});});我做错了什么?有解决方法吗?如果可能的话,我真的很想坚持使用C#中的异步/等待模式。我将尝试用HttpClient替换WebClient。DownloadStringTaskAsync是对现有EAP方法异步的“附加”支持,这是SignalR弃用的EAP方法。HttpClient直接使用TAP。以上是C#学习教程:SignalR-Howtoperformasynchronoustasksinthehub?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: