(这可能与ASP.NET MVC4异步控制器问题重复- 为什么要使用?,但关于webapi,我不同意那里的答案)
假设我有一个长时间运行的SQL请求.它的数据应序列化为JSON并发送到浏览器(作为xhr请求的响应).示例代码:
public class DataController : ApiController
{
public Task<Data> Get()
{
return LoadDataAsync(); // Load data asynchronously?
}
}
Run Code Online (Sandbox Code Playgroud)
当我执行$ .getJson('api/data',...)时会发生什么(请参阅此海报http://www.asp.net/posters/web-api/ASP.NET-Web-API-Poster. pdf):
如果出现问题,请随时纠正我.
在上面的问题中,他们说,点和利润是,[THREAD2]不是来自托管池,但MSDN文章(上面的链接)说
默认情况下,并行库类型类似
Task并Task<TResult>使用线程池线程来运行任务.
所以我得出结论,所有三个线程都来自托管池.
此外,如果我使用同步方法,我仍然只使用一个线程(来自宝贵的线程池)保持我的服务器响应.
那么,从1个线程交换到3个线程的实际意义是什么?为什么不在线程池中最大化线程?
有没有明显有用的方法来使用异步控制器?
task-parallel-library asynccontroller async-await asp.net-web-api
WebRTC 调用在我们的应用程序中不可靠。有时我们会看到黑屏,有时我们根本看不到通话开始,有时会看到音频/视频中的巨大延迟或不同步。
设置:
stun:stun.l.google.com:19302;Coturn托管在 docker 中的 azure 中;simplewebrtc作为客户端;几乎100% 重现的问题是从 LTE 上的一个客户端调用 Wi-Fi 上的另一个客户端。在这种情况下,我们在两个设备上都看到黑屏,但是,默认的 bg-color 是白色,所以至少在 WebRTC 端发生了一些事情。
为解决问题做了哪些工作:
请提出任何可能的研究或修复方法,以使 WebRTC 尽可能可靠。
假设我有两个资源A和B,这两者我想告诉我的用户,通过MVVM(此==视图模型)
this.A = GetA();
this.B = GetB();
Run Code Online (Sandbox Code Playgroud)
我一开始使用TPL:
this.A = await GetAAsync();
this.B = await GetBAsync();
Run Code Online (Sandbox Code Playgroud)
这开始得到A.什么时候A准备就绪,它显示A并继续做同样的事情B- 不是一个非常好的解决方案.会更好:
var taskA = GetAAsync();
var taskB = GetBAsync();
this.A = await taskA;
this.B = await taskB;
Run Code Online (Sandbox Code Playgroud)
现在,这开始得到A,开始得到B并等待A.当A准备好了,就说明A和等待B,直到它显示了.看起来不错,但是,如果A有时需要花费更多的时间来加载,那该B怎么办?
我该如何实现以下场景:
A.B.如何将代码为字符串(在c#中)的azure函数(按计划执行)部署到给定的azure函数应用程序?
我将使用ARM模板部署azure fund app(+所有它需要的)https://github.com/Azure/azure-quickstart-templates/tree/master/101-function-app-create-dynamic,它可以通过代码部署;
但我没有看到通过代码部署函数来运行app的方法.
+更多上下文:部署将从应用服务发生,因此除了NuGet之外,最好不要有任何依赖.例如,我不喜欢从c#调用azure cli的想法.
async-await ×2
c# ×2
.net ×1
azure ×1
cordova ×1
coturn ×1
signalmaster ×1
silverlight ×1
simplewebrtc ×1
webrtc ×1