草庐IT

双异步

全部标签

c++ - 使用 MSVC 并发异步写入文件?

目前我正在使用单线程和fseek/fwrite循环将数据保存到一个大文件中。但当然,节省是瓶颈。为了消除这个瓶颈,我想我可以为异步文件写入创建一个线程,但这会阻止下一个迭代线程中的文件访问。有什么方法可以在VisualC/C++中并发异步写入文件吗?(操作系统是Windows) 最佳答案 使用函数:CreateFileMappinghttp://msdn.microsoft.com/en-us/library/windows/desktop/aa366537(v=vs.85).aspx内存将输出文件映射到内存,然后您可以让多个线程同

c++ - 异步输入输出/获取前缀后的输入

我正在寻找一个在输入之前打印字符串的函数。我知道这可以通过printf和gets实现,但我希望字符串保留在给出输入的最后一行。输出在主线程中处理,输入在主线程启动的另一个线程中处理。例如这是当前的控制台窗口(我输入了stop-command,'>'是前缀字符串):[12:00:00]Startingserver...>stop当控制台输出换行的时候,我希望输入一直在最后一行,像这样:[12:00:00]Startingserver...[12:00:01]Serverstarted>stop我正在使用支持Win32和VCL的EmbarcaderoC++BuilderXE2。编辑:我目前

c# - 异步和等待的工作原理

我想了解Async和Await的工作原理。如何在程序中控制行程。这是我试图理解的代码。publicasyncTaskMyMethod(){TasklongRunningTask=LongRunningOperation();//indeedyoucandoindependenttotheintresultworkhereMySynchronousMethod();//andnowwecallawaitonthetaskintresult=awaitlongRunningTask;//usetheresultConsole.WriteLine(result);}publicasyncTa

c# - ASP.NET MVC 5 异步上下文管理

我有一个相当标准的MVC5应用程序,由存储库层、服务层和Controller层组成。为了保持每一层的解耦和可测试性,我使用Ninject进行依赖注入(inject)。为了复习新技能,我决定在服务和Controller方法的IO绑定(bind)操作上使用带有异步/等待的新任务Controller操作。通常我只是像这样使用InRequestScope绑定(bind)kernel.Bind().To().InRequestScope();一般来说,这现在工作正常,但是如果我选择调试我的应用程序,或者将多个被跟踪的EntityFramework对象连接在一起并保存,我发现上下文已被处理或者我遇

c# - 使用 GetRouteDataAsync 和 GetVirtualPathAsync 在 ASP.NET 中异步 RouteBase?

我有一个自定义的ASP.NET路由,其中​​包含IO操作。现在,假设这些IO操作无法缓存(即太大)。在某种程度上,我正在寻找一个AsyncRouteBase类publicasyncoverrideTaskGetRouteDataAsync(HttpContextBasehttpContext)publicasyncoverrideTaskGetVirtualPathAsync(RequestContextrequestContext,RouteValueDictionaryrouteValues);是否已经存在类似的东西?(找不到)在ASP.NET管道中是否有任何地方可以让我自己创建它

c# - 使我的 COM 程序集调用异步

我刚刚“获得”在当前工作中维护用C#编码的遗留库的特权。这个动态链接库:为使用Uniface制作的大型遗留系统公开方法,该系统别无选择,只能调用COM对象。充当此遗留系统与另一个系统的API之间的链接。在某些情况下使用WinForm作为其UI。根据我对组件的理解,更直观:*[Uniface中的大型遗留系统]*==[COM]==>[C#库]==[托管API]==>*[大型EDM管理系统]*问题是:此C#库中的方法之一运行时间太长,我“应该”使其异步!我习惯了C#,但根本不习惯COM。我已经完成并发编程,但COM似乎给它增加了很多复杂性,到目前为止我所有的试验都以以下任一方式结束:完全没有

c# - ASP.NET MVC(异步)CurrentCulture 不在 Controller 和 View 之间共享

我有一个以.NETFramework4.7.1为目标的ASP.NETMVC4应用程序,如果操作包含异步调用,则存在文化在Controller和View之间不共享的问题。我正在引用NuGet包Microsoft.AspNet.Mvc5.2.3(并且可以在5.2.4中复制)。这是Controller中的代码:publicclassCulturesTestController:Controller{publicasyncTaskIndex(stringvalue){Thread.CurrentThread.CurrentCulture=CultureInfo.GetCultureInfo("

c# - 检查文件是否存在异步?

我希望有一个File.ExistsAsync()我有:boolexists=awaitTask.Run(()=>File.Exists(fileName));为此使用线程感觉像是一种反模式。有更清洁的方法吗? 最佳答案 没有比您的解决方案更简洁的方法了。抛开竞争条件的问题,我相信您的解决方案可以在某些情况下使用。例如我在许多不同的文件夹中都有静态文件内容。(在我的例子中,cshtmlView、脚本文件、css文件,用于mvc)由于我的应用程序架构,这些文件(在应用程序执行期间不会发生太大变化)总是在每个对网络服务器的请求中被检查,与

c# - 相对于正确配置的同步模型,异步模型真的能提高吞吐量吗?

每个人都知道异步为您提供“更好的吞吐量”、“可扩展性”以及在资源消耗方面更高效。在进行下面的实验之前,我也想到了这种(简单的)方式。它基本上表明,如果我们考虑异步代码的所有开销并将其与正确配置的同步代码进行比较,它几乎不会产生性能/吞吐量/资源消耗优势。问题:与正确配置线程池的同步代码相比,异步代码实际上执行得更好吗?可能是我的性能测试存在某种戏剧性的缺陷?测试设置:两个ASP.NETWebAPI方法,JMeter尝试使用200个线程线程组调用它们(30秒恢复时间)。[HttpGet][Route("async")]publicasyncTaskAsyncTest(){awaitTas

c# - C# 异步库方法调用是否应该等待?

异步库方法是否应该调用await?例如,假设我有一个数据服务库方法可以访问名为“repository”的EntityFramework6数据上下文。据我所知,我有两种定义此方法的方法:publicstaticasyncTask>GetAllBlogsAsync(EfDataContextdb){returnawaitdb.Blogs.OrderByDescending(b=>b.Date).SelectAsync();}或者没有async/await装饰publicstaticTask>GetAllBlogsAsync(EfDataContextdb){returndb.Blogs.O