草庐IT

awaiting

全部标签

c# - await httpClient.SendAsync(httpContent) 没有响应

awaithttpClient.SendAsync(httpContent)没有响应,但我发现代码/url中没有错误,它仍然挂起。请建议/帮助。我的代码如下:publicasyncTaskGet_API_Result_String(stringurl,List>parameters){stringres="";try{IsolatedStorageSettingssettings=IsolatedStorageSettings.ApplicationSettings;//PrepareurlUrimainurl=newUri(settings[FSAPARAM.UserSettings

c# - 我以为 await 继续与调用者在同一个线程上,但似乎没有

我认为关于async/await的要点之一是,当任务完成时,继续在调用await时的相同上下文中运行,在我的例子中,这将是UI线程。例如:Debug.WriteLine("2:ThreadID:"+Thread.CurrentThread.ManagedThreadId);awaitfs.ReadAsync(data,0,(int)fs.Length);Debug.WriteLine("3:ThreadID:"+Thread.CurrentThread.ManagedThreadId);我不希望这样:2:ThreadID:103:ThreadID:11什么给了?为什么延续的线程ID与U

c# - 为什么 Enumerator.MoveNext 在与 using 和 async-await 一起使用时不能像我预期的那样工作?

我想通过一个List来枚举并调用异步方法。如果我这样做:publicasyncTaskNotWorking(){varlist=newList{1,2,3};using(varenumerator=list.GetEnumerator()){Trace.WriteLine(enumerator.MoveNext());Trace.WriteLine(enumerator.Current);awaitTask.Delay(100);}}结果是:True0但我希望它是:True1如果我删除using或awaitTask.Delay(100):publicvoidWorking1(){var

c# - NSubstitute - 收到异步 - “call is not awaited” 警告

我正在尝试验证是否使用正确的参数调用了异步方法。但是,我收到警告:“由于未等待此调用,因此在调用完成之前继续执行当前方法。考虑将‘await’运算符应用于调用结果”。此警告出现在//Assert注释下方的代码行中(如下)。我使用NSubstitute的测试如下:[Test]publicasyncTaskSimpleTests(){//Arrangevarrequest=CreateUpdateItemRequest();databaseHelperSub.ExecuteProcAsync(Arg.Any()).Returns(Task.FromResult((object)null))

c# - 当我使用 "await" "async"方法时,它会变成同步的吗?

场景是这样的:staticasyncvoidMain(string[]args){awaitAnAsyncMethod();}privatestaticasynctaskAnAsyncMethod(){varx=awaitsomeAsyncMethod();vary=awaitsomeOtherAsyncMethod();returnx==y;}“someAsyncMethod”和“someOtherAsyncMethod”是因为我们使用await而同步运行,还是它们都按照执行顺序异步运行?更新鉴于下面的答案表明等待的异步方法将按顺序运行,如果我们只是要停止执行并等待这些方法的返回值,

c# - 在 Task.Run 中使用 async/await 在 WinForms 上访问 UI 控件

我在具有一个按钮和一个标签的WinForms应用程序中有以下代码:usingSystem;usingSystem.IO;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceWindowsFormsApplication1{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privateasyncvoidbutton1_Click(objectsender,EventArgse){awaitRun();}privateasyncTas

c# - 使用 async-await 可以给您带来任何性能优势吗?

每当我读到有关async-await的内容时,用例示例总是其中有一个您不想要的UI卡住。要么所有的编程书籍/教程都相同,要么UI阻塞是我作为开发人员应该了解的async-await的唯一情况。是否有任何示例可以说明如何使用async-await在算法中获得性能优势?让我们来回答任何经典的编程面试问题:在二叉树中找到最近的共同祖先给定a[0],a[1],...,a[n-1]表示一个基数的数字-10数,找到下一个使用相同数字的最大数找到两个排序数组的中位数(即合并它们时的中位数)给定一个数字数组1,2,...,n缺少一个数字,找到缺失的数字找出数组中最大的2个数有什么方法可以让那些使用as

c# - 使用 Async 和 Await 转换普通的 Http Post Web 请求

我如何使用Async/Await模式转换我的传统HttpWebRequest“POST”调用,在此附上我当前的代码,任何人请帮助我使用WindowsPhone8的Async/Await模式转换此代码。publicvoidGetEnvironmentVariables(ActiongetResultCallback,ActiongetErrorCallback){CredentialsCallback=getResultCallback;ErrorCallback=getErrorCallback;varuri=newUri(BaseUri);varrequest=(HttpWebReq

c# - C# 异步 CTP 中的 `awaiting` 线程会发生什么?

我一直在阅读新的异步await关键字,这听起来很棒,但是有一个关键问题我无法在我的任何介绍视频中找到答案到目前为止已经看过了(前阵子我也看了白皮书)。假设我在主UI线程的嵌套函数中调用了await。此时线程会发生什么情况?控制是否返回到消息循环并且UI线程可以自由处理其他输入?当等待的任务完成时,整个堆栈是否被推送到消息队列中,这样控制权将通过每个嵌套函数返回,还是这里完全发生了其他事情?其次(当我引起您的注意时),我真的不明白为什么异步方法需要用async标记。任何方法都不能异步执行吗?如果我想异步执行一个方法但它没有async关键字怎么办——有没有一种方法可以简单地做到这一点?干杯

c# - await/async 与线程有何不同?

我正在尝试熟悉c#的新await/async关键字,但我发现有几个方面我不太理解。让我们从竞争条件开始:Streams=......for(inti=0;i这会一直按预期工作吗(例如,写入文件12345.....而不是13254或其他东西)?第二件事是异步函数如果不包含await运算符则同步执行。而且,根据微软文档,异步函数总是在调用者线程中执行(与BeginInvoke相比)。这让我想到接下来的3个问题:异步函数在释放给调用函数之前执行了多少?asyncvoidMyAsyncFunction(){Operation1();Operation2();Operation3();....S