草庐IT

async-ctp

全部标签

c# - 返回 void 和返回 Task 有什么区别?

在查看各种C#异步CTP示例时,我看到一些返回void的异步函数,以及其他返回非通用Task的人.我明白为什么要返回Task用于在异步操作完成时将数据返回给调用者,但我看到的函数的返回类型为Task从不返回任何数据。为什么不回void? 最佳答案 SLaks和Killercam的回答很好;我以为我只是添加了更多的上下文。您的第一个问题本质上是关于哪些方法可以标记为async.Amethodmarkedasasynccanreturnvoid,TaskorTask.Whatarethedifferencesbetweenthem?AT

c# - 如何将 DbContext.Database.SqlQuery<TElement>(sql, params) 与存储过程一起使用? EF 代码优先 CTP5

我有一个包含三个参数的存储过程,我一直在尝试使用以下方法返回结果:context.Database.SqlQuery("mySpName",param1,param2,param3);起初我尝试使用SqlParameter对象作为参数,但这没有用并抛出一个SqlException并显示以下消息:Procedureorfunction'mySpName'expectsparameter'@param1',whichwasnotsupplied.所以我的问题是如何将此方法用于需要参数的存储过程?谢谢。 最佳答案 您应该按以下方式提供Sq

c# - 如何将 DbContext.Database.SqlQuery<TElement>(sql, params) 与存储过程一起使用? EF 代码优先 CTP5

我有一个包含三个参数的存储过程,我一直在尝试使用以下方法返回结果:context.Database.SqlQuery("mySpName",param1,param2,param3);起初我尝试使用SqlParameter对象作为参数,但这没有用并抛出一个SqlException并显示以下消息:Procedureorfunction'mySpName'expectsparameter'@param1',whichwasnotsupplied.所以我的问题是如何将此方法用于需要参数的存储过程?谢谢。 最佳答案 您应该按以下方式提供Sq

c# - 捕获由 async void 方法抛出的异常

使用Microsoft的异步CTPfor.NET,是否可以在调用方法中捕获异步方法抛出的异常?publicasyncvoidFoo(){varx=awaitDoSomethingAsync();/*Handletheresult,butsometimesanexceptionmightbethrown.Forexample,DoSomethingAsyncgetsdatafromthenetworkandthedataisinvalid...aProtocolExceptionmightbethrown.*/}publicvoidDoFoo(){try{Foo();}catch(Pro

c# - 捕获由 async void 方法抛出的异常

使用Microsoft的异步CTPfor.NET,是否可以在调用方法中捕获异步方法抛出的异常?publicasyncvoidFoo(){varx=awaitDoSomethingAsync();/*Handletheresult,butsometimesanexceptionmightbethrown.Forexample,DoSomethingAsyncgetsdatafromthenetworkandthedataisinvalid...aProtocolExceptionmightbethrown.*/}publicvoidDoFoo(){try{Foo();}catch(Pro

c# - async/await - 何时返回 Task 与 void?

在什么场景下使用publicasyncTaskAsyncMethod(intnum)代替publicasyncvoidAsyncMethod(intnum)我能想到的唯一场景是,如果您需要任务能够跟踪其进度。另外,在下面的方法中,async和await关键字是不是就不需要了?publicstaticasyncvoidAsyncMethod2(intnum){awaitTask.Factory.StartNew(()=>Thread.Sleep(num));} 最佳答案 通常,您会想要返回一个Task。主要的异常(exception)

c# - async/await - 何时返回 Task 与 void?

在什么场景下使用publicasyncTaskAsyncMethod(intnum)代替publicasyncvoidAsyncMethod(intnum)我能想到的唯一场景是,如果您需要任务能够跟踪其进度。另外,在下面的方法中,async和await关键字是不是就不需要了?publicstaticasyncvoidAsyncMethod2(intnum){awaitTask.Factory.StartNew(()=>Thread.Sleep(num));} 最佳答案 通常,您会想要返回一个Task。主要的异常(exception)

c# - 如何以及何时使用 ‘async’ 和 ‘await’

根据我的理解,其中一件主要事情是asyncandawait这样做是为了使代码易于编写和阅读-但使用它们等于生成后台线程来执行长时间逻辑吗?我目前正在尝试最基本的示例。我添加了一些内联评论。你能帮我解释一下吗?//Idon'tunderstandwhythismethodmustbemarkedas`async`.privateasyncvoidbutton1_Click(objectsender,EventArgse){Taskaccess=DoSomethingAsync();//taskindependentstuffhere//thislineisreachedafterthe5

c# - 如何以及何时使用 ‘async’ 和 ‘await’

根据我的理解,其中一件主要事情是asyncandawait这样做是为了使代码易于编写和阅读-但使用它们等于生成后台线程来执行长时间逻辑吗?我目前正在尝试最基本的示例。我添加了一些内联评论。你能帮我解释一下吗?//Idon'tunderstandwhythismethodmustbemarkedas`async`.privateasyncvoidbutton1_Click(objectsender,EventArgse){Taskaccess=DoSomethingAsync();//taskindependentstuffhere//thislineisreachedafterthe5

jquery - "async: false"在 jQuery.ajax() 中做什么?

具体来说,它与默认值(async:true)有何不同?在什么情况下我想将async显式设置为false,它是否与防止页面上的其他事件触发有关? 最佳答案 Doesithavesomethingtodowithpreventingothereventsonthepagefromfiring?是的。将async设置为false意味着您正在调用的语句必须在函数中的下一个语句被调用之前完成。如果您设置async:true那么该语句将开始执行,并且无论异步语句是否已完成,都将调用下一条语句。要了解更多信息,请参阅:jQueryajaxsucc