async-await相关内容

.NET 4.5 的异步功能是否也适用于 MySql 和其他数据库?

我了解 .NET 4.5 提供了一系列功能,使异步数据库操作更易于实现.MSDN 说,如果连接字符串未设置为异步工作,ADO.NET 的任何异步方法都不会以异步方式工作.因此 SqlConnectionStringBuilder 带有一个名为 AsynchronousProcessing 的属性. 我想知道这些异步功能是否也适用于其他数据库服务器(例如 mysql)?我应该怎么做才能使 ay ..
发布时间:2022-01-23 21:59:26 C#/.NET

使用带有 async/await 的 ThreadStatic 变量

使用 C# 中的新 async/await 关键字,现在会影响您使用 ThreadStatic 数据的方式(和时间),因为回调委托在与 async 不同的线程上执行操作开始.例如,以下简单的控制台应用程序: [ThreadStatic]私有静态字符串 Secret;静态无效主要(字符串 [] 参数){开始().等待();Console.ReadKey();}私有静态异步任务开始(){秘密=“哞哞 ..
发布时间:2022-01-22 19:57:44 C#/.NET

使用等待时 Monitor.Exit 上的 SynchronizationLockException

我正在创建一段代码,用于从我们拥有的旧系统中获取网页.为了避免过度查询,我将获取到的 URL 缓存起来.我正在使用 Monitor.Enter、Monitor.Exit 并仔细检查以避免发出两次请求,但是在使用 Monitor.Exit,我得到了这个异常: System.Threading.SynchronizationLockException 被捕获H结果=-2146233064Messag ..

使用 HttpWebRequest.GetResponseAsync 进行异步和等待

我在发出 Web 请求时尝试使用 Async 和 Await,但我发现它永远不会超过 await 行.我是通过 Metro 应用程序执行此操作的,但我也在 winforms 应用程序中验证了问题. 公共异步任务做一点事(){字符串 url = "http://imgur.com/gallery/VcBfl.json";HttpWebRequest 请求 = HttpWebRequest.Crea ..
发布时间:2022-01-21 14:06:25 C#/.NET

调用 await GetFileAsync() 永远不会返回,并且应用程序在 WinRT 应用程序中挂起

我试图在应用程序启动时加载和读取设置文件,大约 90% 的时间,await GetFileAsync("filename.xml"); 永远不会返回,因此,挂起应用程序. 大约四分之一的时间,如果我单步执行代码,它实际上会返回并读取文件. 这是一个非常简化的代码: App.xaml.cs: protected override void OnLaunched(LaunchAct ..
发布时间:2022-01-21 14:03:05 C#/.NET

Metro/WinRT UI async void 事件处理程序未调用未处理的异常处理程序

将以下内容视为从 Windows 8 Metro/WinRT 应用程序中提取的内容,这些内容已减少到显示异常所需的最低限度: 公共类应用程序:应用程序{公共应用程序(){UnhandledException += (sender, e) =>e.Handled = true;}}公共类 MainPage : 页面{私人无效Button_Click_1(对象发送者,RoutedEventArgs ..

在 C# 中排队异步任务

我有几个方法可以向数据库报告一些数据.我们希望异步调用对数据服务的所有调用.这些对数据服务的调用已经结束,因此我们要确保这些 DS 调用在任何给定时间按顺序依次执行.最初,我对这些方法中的每一个都使用异步等待,并且每个调用都是异步执行的,但是我们发现它们是否不按顺序进行,那么就有出错的余地. 所以,我认为我们应该将所有这些异步任务排队并在单独的线程中发送它们,但我想知道我们有哪些选择?我遇到 ..
发布时间:2022-01-21 12:02:39 C#/.NET

等待基于任务的队列

我想知道是否存在 ConcurrentQueue,类似于 BlockingCollection 从集合中获取不会阻塞,但是相反,它是异步的,并且会导致异步等待,直到将项目放入队列中. 我已经提出了自己的实现,但它似乎没有按预期执行.我想知道我是否正在重新发明已经存在的东西. 这是我的实现: 公共类MessageQueue;{并发队列queue = new ConcurrentQ ..
发布时间:2022-01-21 11:29:59 C#/.NET

具有非主键值的 FindAsync

公共类 Foo{公共 int ID { 获取;放;}公共 int 用户 ID { 获取;放;}} 这似乎是异步执行此操作的方法: DatabaseContext db = new DatabaseContext();Foo foo = 等待 db.Foos.FindAsync(fooid); 如何根据 UserId 的值异步获取特定用户的所有 Foo? 解决方案 假设您使用的是 En ..
发布时间:2022-01-20 11:34:24 C#/.NET

EF6 alpha 异步等待实体存储过程/函数导入?

我想将新的异步等待功能应用于在我的实体模型中导入的存储过程/函数导入,但目前还无法使用 EF6 alpha. 在 EF6 alpha2(或 20211 年的夜间版本)中是否可以在返回复杂类型集合的实体函数导入(调用 SQL 存储过程)上调用任何新的异步方法?例如 私有异步任务>getInfo(字符串 id){使用 (CustomEntity context = ..

ToListAsync() 根本没有完成

我想异步执行一些查询.但是当我通过代码进行调试时,大多数时候调用 ToListAsync() 时程序会停止.没有可见的异常,并且调用堆栈窗口被清除.当我在 VS 中按下暂停按钮时,我可以看到调用当前方法之前的堆栈帧. var res1 = await context.Address().Where(...).ToListAsync();var res2 = await context.Perso ..
发布时间:2022-01-20 10:56:19 C#/.NET