【c#-在哪个线程上调用SocketAsyncEventArgs Completed以及在何处处理消息】教程文章相关的互联网学习教程文章

c# – async等待CPU计算与IO操作的使用?【代码】

我已经知道async-await保持线程上下文,也处理异常转发等(这有很大帮助). 但请考虑以下示例:/*1*/ public async Task<int> ExampleMethodAsync() /*2*/ { /*3*/ var httpClient = new HttpClient(); /*4*/ /*5*/ //start async task... /*6*/ Task<string> contentsTask = httpClient.GetStringAsync("http://msdn.microsoft.com"); /*7*/ /*8*/ //wait and return... /*9*/ string...

c# – Async / Await:ConfigureAwait的意外行为【代码】

如果在ASP.NET MVC中执行以下代码,您可以在调试窗口中看到它将在等待后正确恢复线程的文化,即使ManagedThreadId发生更改:public async Task<ActionResult> Index() {Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-DE");Debug.WriteLine(Thread.CurrentThread.ManagedThreadId);Debug.WriteLine(Thread.CurrentThread.CurrentUICulture);await SomeMethod();Debug.WriteLine(Thread.CurrentThread.ManagedThreadId...

c# async await 理解【图】

写两个方法 第一个List<int> list = new List<int>(); int i= 0; do {i++;list.Add(i); } while (i< 10); Console.WriteLine("开始执行时间:" + DateTime.Now.ToString()); Parallel.ForEach(list, async item => {var result = await Test();Console.WriteLine("线程" + result.ToString()); }); 第二个public static async Task<string> Test() {return await Task.Run(() =>{Thread.Sleep(2000);Console.WriteLine("Test()方法...

c# – async / await如何帮助ASP.Net应用程序?【代码】

在MVC控制器的操作方法中使用async / await可以扩展Web应用程序,因为等待Asp.Net线程池的请求线程被释放,以便它可以处理IIS队列中的此工作进程的其他请求.这意味着如果我们将工作进程的队列长度限制为10,并向异步操作发送50-100个请求,则IIS不应返回HTTP 503错误,因为始终存在从Asp.Net线程池到服务器的空闲线程来电请求. 我有一个WebApi进行如下计算:public class ValuesController : ApiController {public int GetSum(int x, i...

c# – 如何在LINQ中使用async和await?【代码】

我是ASP.NET的新手,正在尝试处理一个示例项目.我知道这是一个愚蠢的问题,但请耐心等待.即使SQL查询中返回多行,下面的代码也只返回一个结果.我意识到FirstOrDefaultAsync只返回第一个元素.我在这里阅读文档:https://msdn.microsoft.com/en-us/library/system.data.entity.queryableextensions(v=vs.113).aspx但是我找不到使用什么而不是FirstOrDefaultAsync,它不仅会返回第一行,而且会返回与我的SQL条件匹配的所有内容. 到目前为止...

c# – 始终在ASP.NET MVC控制器中使用Async【代码】

我最近继承了一个ASP.NET MVC项目.在该项目中,开发人员在各处使用异步.我正在试图评估它是否是一个好主意.具体来说,我正在审查控制器代码. 在控制器中,开发人员编写了如下内容:public async Task<ActionResult> Index() {return View(); }这有什么优势而不是传统版本:public ActionResult Index() {return View(); }如果在控制器代码中使用了await,我可以理解使用async.很多时候,它没有被使用.这种方法有任何理由吗?解决方法:不...

c# – async await从内部任务结果中获取异常【代码】

给出以下代码段:public Task StartReading() {var activityCheck = Task.Factory.StartNew(async () => await this.CheckActivityTimeout(), this._token.Token).Unwrap();var reading = Task.Factory.StartNew(async () => await this.ReadAsync(), this._token.Token).Unwrap();// for reference, this code produces the same result:// var activityCheck = this.CheckActivityTimeout();// var reading = this.ReadAsync();r...

c# – async Task冻结了UI【代码】

我有这样的方法:private async Task DoSomething() {// long running work here. }当我调用这样的方法时,它会阻止UI:Task t = DoSomething();我必须做其中一个使其无阻塞:Task t = new Task(() => DoSomething()); t.Start();// OrTask t = Task.Factory.StartNew(() => DoSomething());那么当您可以像在框架4中使用任务并使用Task.Wait()代替等待时,async / await的重点是什么? 编辑:我理解你的所有答案 – 但没有一个真正解...

c# – 我的桌面应用程序挂起了使用async和await的Web API服务调用【代码】

在数据库中保存数据时,我遇到了很多延迟.我有一个exe(Deskptop应用程序)从串口读取数据并通过Web API服务将该条目推送到数据库,但我的应用程序在此行上挂起:httpClient.PostAsync("api/MyController/Save", httpConent).Result;这个exe负责调用我的Web API服务方法并将数据保存到我的数据库. 这是我的代码:void _serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e){int dataLength = _serialPort.BytesToRe...

C#中 Thread,Task,Async/Await,IAsyncResult 的那些事儿!

C#中 Thread,Task,Async/Await,IAsyncResult 的那些事儿! https://www.cnblogs.com/doforfuture/p/6293926.html

C# Task中的Func, Action, Async与Await的使用【代码】【图】

在说Asnc和Await之前,先说明一下Func和Action委托, Task任务的基础的用法 1. Func Func是一种委托,这是在3.5里面新增的,2.0里面我们使用委托是用Delegate,Func位于System.Core命名空间下,使用委托可以提升效率,例如在反射中使用就可以弥补反射所损失的性能。Action<T>和Func<T,TResult>的功能是一样的,只是Action<T>没有返类型,Func<T,T,Result>:有参数,有返回类型Action,则既没有返回也没有参数,Func<T,TResult> 的表现...

c#异步编程async await【代码】

可以代替协程了 但是需要.net4 版本 unity2017以上版本可以用了 再也可以不用蛋疼的没有返回值的协程了 //异步编程,和Task一起用async void TestAsync(){//等待2秒await Task.Delay(2000);int a = 0;while (a < 20){//空等待await Task.Yield();//相当于 yield return nulla++;print(a);}print("haha");}

[C#] .NET4.0中使用4.5中的 async/await 功能实现异步

在.NET Framework 4.5中添加了新的异步操作库,但是在.NET Framework 4.0中却无法使用。这时不免面临着抉择,到底是升级整个解决方案还是不使用呢?如果你的软件还没发布出去,建议直接使用.NET Framework 4.5吧;但是如果已经发布了,又不想用户重新升级框架到.NET Framework 4.5,那也有一个办法,那就是使用库:Microsoft.Bcl.Async在4.5中使用async/await 的地方如下:好处呢,我不多说,我想说的是:What do I need for await...

c# – 使用async-await进行数据库查询 – 如何保存线程?

我开始理解等待一系列异步方法的概念,这些方法具有“底层”硬件任务,如写入文件(没有线程https://blog.stephencleary.com/2013/11/there-is-no-thread.html).但是,如果数据库是本地数据库,那么等待数据库调用(如ExecuteQueryAsync)的重点是什么?从技术上讲,这不是CPU绑定的任务,因为SQL Server需要一个线程来执行查询吗?解决方法:您的进程在线程池中具有有限数量的线程(您可以创建更多线程,但它们在资源方面是昂贵的).进行数据库...