草庐IT

await-async

全部标签

c# - async-await 的延续爆发——表现不同?

我有一个在单击按钮后运行的winform代码:​​voidbutton1_Click(objectsender,EventArgse){AAA();}asyncTaskBBB(intdelay){awaitTask.Delay(TimeSpan.FromSeconds(delay));MessageBox.Show("hello");}asyncTaskAAA(){vartask1=BBB(1);//问题:为什么当delay=1时我一次看到一个MessageBox:但是如果我将延迟更改为:1,2,3—vartask1=BBB(1);vartask2=BBB(2);vartask3=BB

c# - 当我在接口(interface)方法调用中忘记 `await` 时没有警告

考虑:usingSystem.Threading.Tasks;classProgram{staticvoidMain(string[]args){Cc=newC();c.FooAsync();//warningCS4014:Becausethiscallisnotawaited,executionofthecurrentmethodcontinuesbeforethecalliscompleted.Considerapplyingthe'await'operatortotheresultofthecall.((I)c).FooAsync();//Nowarning}}classC:I{

c# - 当我在接口(interface)方法调用中忘记 `await` 时没有警告

考虑:usingSystem.Threading.Tasks;classProgram{staticvoidMain(string[]args){Cc=newC();c.FooAsync();//warningCS4014:Becausethiscallisnotawaited,executionofthecurrentmethodcontinuesbeforethecalliscompleted.Considerapplyingthe'await'operatortotheresultofthecall.((I)c).FooAsync();//Nowarning}}classC:I{

c# - 在 LINQ 语句中使用 async/await 时实际发生了什么?

下面的代码片段可以编译,但我希望它等待任务结果而不是给我List>.varfoo=bars.Select(asyncbar=>awaitBaz(bar)).ToList()正如指出的那样here,你需要使用Task.WhenAll:vartasks=foos.Select(asyncfoo=>awaitDoSomethingAsync(foo)).ToList();awaitTask.WhenAll(tasks);但是acomment指出async和await在Select()里面不需要:vartasks=foos.Select(foo=>DoSomethingAsync(foo)).

c# - 在 LINQ 语句中使用 async/await 时实际发生了什么?

下面的代码片段可以编译,但我希望它等待任务结果而不是给我List>.varfoo=bars.Select(asyncbar=>awaitBaz(bar)).ToList()正如指出的那样here,你需要使用Task.WhenAll:vartasks=foos.Select(asyncfoo=>awaitDoSomethingAsync(foo)).ToList();awaitTask.WhenAll(tasks);但是acomment指出async和await在Select()里面不需要:vartasks=foos.Select(foo=>DoSomethingAsync(foo)).

c# - 何时使用 "await"关键字

我正在写一个网页,它调用了一些网络服务。这些电话看起来像这样:varData1=awaitWebService1.Call();varData2=awaitWebService2.Call();varData3=awaitWebService3.Call();在代码审查期间,有人说我应该将其更改为:varTask1=WebService1.Call();varTask2=WebService2.Call();varTask3=WebService3.Call();varData1=awaitTask1;varData2=awaitTask2;varData3=awaitTask3;为什

c# - 何时使用 "await"关键字

我正在写一个网页,它调用了一些网络服务。这些电话看起来像这样:varData1=awaitWebService1.Call();varData2=awaitWebService2.Call();varData3=awaitWebService3.Call();在代码审查期间,有人说我应该将其更改为:varTask1=WebService1.Call();varTask2=WebService2.Call();varTask3=WebService3.Call();varData1=awaitTask1;varData2=awaitTask2;varData3=awaitTask3;为什

c# - 如何使用 Async/Await 进行进度报告

假设我有一个文件列表,我必须使用c#项目中的ftp相关类将这些文件复制到Web服务器。在这里我想使用Async/Await功能,还想显示多个进度条以同时上传多个文件。每个进度条指示每个文件的上传状态。所以请指导我该怎么做。当我们与后台worker一起做这种工作时,这很容易,因为后台worker有进度变化事件。那么如何使用Async/Await处理这种情况。如果可能的话,用示例代码指导我。谢谢 最佳答案 来自article的示例代码publicasyncTaskUploadPicturesAsync(ListimageList,IPr

c# - 如何使用 Async/Await 进行进度报告

假设我有一个文件列表,我必须使用c#项目中的ftp相关类将这些文件复制到Web服务器。在这里我想使用Async/Await功能,还想显示多个进度条以同时上传多个文件。每个进度条指示每个文件的上传状态。所以请指导我该怎么做。当我们与后台worker一起做这种工作时,这很容易,因为后台worker有进度变化事件。那么如何使用Async/Await处理这种情况。如果可能的话,用示例代码指导我。谢谢 最佳答案 来自article的示例代码publicasyncTaskUploadPicturesAsync(ListimageList,IPr

c# - ReaderWriterLockSlim 和 async\await

我在使用ReaderWriterLockSlim时遇到了一些问题。我不明白这是怎么回事。我的代码:privateasyncTaskLoadIndex(){if(!File.Exists(FileName+".index.txt")){return;}_indexLock.EnterWriteLock();//_index.Clear();using(TextReaderindex=File.OpenText(FileName+".index.txt")){strings;while(null!=(s=awaitindex.ReadLineAsync())){varss=s.Split(