草庐IT

dispatch-async

全部标签

c# - 为什么添加 Microsoft.Bcl.Async 包后,app.config 文件中会添加一个 "bindingRedirect"?

我想知道为什么nuget在安装Microsoft.Bcl.Async之后将以下代码添加到我的应用程序app.config文件中:如果我从配置中删除这个XML元素,应用程序将无法正常运行。据我所知,我们可以使用bindingRedirect让应用程序加载新版本或旧版本的程序集,以防我们在编译EXE时使用的版本消失。但是,我使用的版本正是2.5.19.0,那我为什么需要重定向?为什么我需要这个bindingRedirect? 最佳答案 程序集Microsoft.Threading.Tasks和Microsoft.Threading.Ta

c# - 不能将 lambda 表达式用作动态分派(dispatch)操作的参数,而不先将其转换为委托(delegate)或表达式树类型

我正在使用.NET4.5和VS2013,我有一个获取dynamic的查询来自数据库的结果。dynamictopAgents=this._dataContext.Sql("selectt.create_user_idas\"User\",sum(t.netamount)as\"Amount\"fromtransactiondetailtwheret.update_date>sysdate-7groupbyt.create_user_id").QueryMany();以下语句因编译错误而失败Cannotusealambdaexpressionasanargumenttoadynamical

c# - C# 中的双重分派(dispatch)?

我听过/读过这个词,但不太明白它的意思。我应该在什么时候使用这种技术以及如何使用它?谁能提供一个好的代码示例? 最佳答案 访问者模式是一种以面向对象的方式进行双重调度的方式。当您想根据运行时的类型而不是编译时的类型为给定参数选择使用哪种方法时,它很有用。双重dispatch是多重dispatch的特例。当您在一个对象上调用一个虚拟方法时,这被认为是单分派(dispatch),因为调用哪个实际方法取决于单个对象的类型。对于双重分派(dispatch),对象的类型和方法唯一参数的类型都会被考虑在内。这类似于方法重载决策,不同之处在于参数

c# - 当异步方法未以 'Async' 结束时,如何在 Visual Studio 中收到警告?

每次创建不以“Async”结尾的异步方法时,如何让VisualStudio给我一个命名警告?这是异步方法的推荐约定,但我经常发现自己忘记添加该后缀,警告会很有用。 最佳答案 来自选项,转到文本编辑器→基本→代码风格→命名选择管理规范并添加新规范选择方法,勾选所有辅助功能选项,然后从修饰符中选择异步。将标题命名为异步方法并保存现在进入管理命名样式并添加新样式。添加Async作为后缀,命名为AsyncSuffix,然后保存现在按加号并创建新的命名。选择规范作为AsyncMethod,选择所需的Style作为AsyncPostfix,Se

c# - Dispatcher.BeginInvoke : Cannot convert lambda to System. 委托(delegate)

我正在尝试调用System.Windows.Threading.Dispatcher.BeginInvoke。该方法的签名是这样的:BeginInvoke(Delegatemethod,paramsobject[]args)我试图向它传递一个Lambda而不是必须创建一个委托(delegate)。_dispatcher.BeginInvoke((sender)=>{DoSomething();},newobject[]{this});它给我一个编译器错误,说我can'tconvertthelambdatoaSystem.Delegate.委托(delegate)的签名以一个对象为参数,

c# - 为什么 "async void"单元测试无法识别?

asyncvoid单元测试无法在VisualStudio2012中运行:[TestClass]publicclassMyTestClass{[TestMethod]publicasyncvoidInvisibleMyTestMethod(){awaitTask.Delay(1000);Assert.IsTrue(true);}}如果我想进行异步单元测试,测试方法必须返回一个任务:[TestMethod]publicasyncTaskVisibleMyTestMethod(){awaitTask.Delay(1000);Assert.IsTrue(true);}为什么会这样?并不是说我绝

c# - Async PartialView 导致 "HttpServerUtility.Execute blocked..."异常

我有一个试图检索IEnumerable的部分View使用异步从数据库...方法publicstaticclassPostService{publicstaticintPostsPerPage=50;publicstaticasyncTask>GetRecentAsync(intpage=0){returnawaitentityFrameworkDbContext.Posts.ToListAsync();}}局部ViewpublicasyncTaskRecent(intpage=0){returnPartialView(awaitPostService.GetRecentAsync(pa

c# - Async await 关键字是否等同于 ContinueWith lambda?

有人可以确认我是否正确理解了Asyncawait关键字吗?(使用CTP版本3)到目前为止,我已经知道在方法调用之前插入await关键字基本上做了两件事,A。它创建一个立即返回,B。它创建一个“继续”,在异步方法完成时调用调用。在任何情况下,延续都是该方法代码块的剩余部分。所以我想知道的是,这两段代码在技术上是否等效,如果是,这是否基本上意味着await关键字与创建ContinueWithLambda相同(即:它基本上是一个编译器快捷方式)?如果不是,有什么区别?boolSuccess=awaitnewPOP3Connector("mail.server.com",txtUsername

c# - 使用 SqlCommand Async 方法处理大数据时性能糟糕

我在使用异步调用时遇到了主要的SQL性能问题。我创建了一个小案例来演示这个问题。我在位于我们LAN中的SQLServer2016上创建了一个数据库(因此不是localDB)。在那个数据库中,我有一个包含2列的WorkingCopy表:Id(nvarchar(255,PK))Value(nvarchar(max))DDLCREATETABLE[dbo].[Workingcopy]([Id][nvarchar](255)NOTNULL,[Value][nvarchar](max)NULL,CONSTRAINT[PK_Workingcopy]PRIMARYKEYCLUSTERED([Id]A

c# - 方法名中使用 "Async"后缀是否取决于是否使用 'async'修饰符?

在方法名称后缀“Async”的约定是什么?是否应该将“Async”后缀仅附加到使用async声明的方法?修饰符?publicasyncTaskConnectAsync()或者该方法只返回Task就足够了吗?或Task?publicTaskConnectAsync() 最佳答案 我认为即使从Microsoft文档来看,事实也是模棱两可的:InVisualStudio2012andthe.NETFramework4.5,anymethodthatisattributedwiththeasynckeyword(AsyncinVisualB