草庐IT

ASynchronous

全部标签

windows - 如何将主机名异步解析为 IP 地址?

如何将主机名异步解析为IP地址,最好是使用重叠I/O?GetAddrInfoEx不支持Windows7及更早版本中的重叠I/O。我正在使用nativeC++。 最佳答案 郑重声明,这可以在Windows7上本地完成,如下所示:DnsWriteQuestionToBuffer自己编写DNS查询以进行发送。DnsExtractRecordsFromMessage在收到后自行解析DNS响应。WSASendTo连同WSARecvFrom在IOCPserver用于异步发送和接收DNS查询。这种技术的副作用是它绝不是新手可以轻易拉动的壮举。

windows - 在将输出重定向到批处理文件中的文件时异步执行命令?

假设在批处理文件中,我想异步执行myCommand(无需等待它完成)。而且我不想在新的控制台窗口中执行myCommand。同时,我想将myCommand的输出重定向到output.txt所以在批处理文件中,如果我写STARTmyCommand>output.txtoutput.txt将为空,我将看到一个新窗口。如果我写myCommand>output.txt那我就不能异步执行了。有什么方法可以满足所有这三个要求吗?(异步,无新窗口,重定向输出)谢谢! 最佳答案 我还没有完全测试过它,但我认为这可能有效:start/b""myComm

windows - 如何为 ReadFileEx() 的完成例程提供上下文信息?

Win32ReadFileEx定义为:BOOLWINAPIReadFileEx(__inHANDLEhFile,__out_optLPVOIDlpBuffer,__inDWORDnNumberOfBytesToRead,__inoutLPOVERLAPPEDlpOverlapped,__in_optLPOVERLAPPED_COMPLETION_ROUTINElpCompletionRoutine);我正在尝试弄清楚如何使完成例程(最后一个参数)在操作完成时调用动态函数指针。似乎没有办法传递用户数据。有什么想法吗? 最佳答案 传入R

c++ - I/O 完成端口的异步操作返回 0 字节传输

使用I/O完成端口的异步操作返回0字节传输,尽管I/O操作按预期工作(我的读取缓冲区已满)。BYTEbuffer[1024]={0};OVERLAPPEDo={0};HANDLEfile=CreateFile(_T("hello.txt"),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);HANDLEcompletion_port=CreateIoCompletionPort(file,NULL,0,0);ReadFile(file,buffer,1024,NULL,&o);在工作线程

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

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

c# - 我是否应该将 async/await 添加到单行函数中?

这个问题在这里已经有了答案:Whyuseasyncandreturnawait,whenyoucanreturnTaskdirectly?(8个答案)关闭5个月前。我是否应该将async/await添加到单行函数中,例如:publicasyncTaskGetFoo(){returnawaitHandleAsync(....);}或者如果参数不需要异步调用并且我可以简单地写,这是不需要的开销:publicTaskGetFoo(){returnHandleAsync(....);}

c# - WebClient 在哪个线程上引发事件?

我找不到任何指定WebClient在哪个线程上引发其事件的文档。我进行了一些测试并确定了以下内容:如果从UI线程(比如从事件处理程序)调用,事件处理程序将在该线程上执行。作为测试,我在调用OpenReadAsync之后添加了一个无限循环。从未调用事件处理程序。如果没有UI线程,就像在控制台应用程序中一样,事件处理程序将在线程池线程上执行。在这种情况下,如果我想为应用程序的其余部分提供一些结果,就必须注意线程问题。是否在任何地方记录了这种行为?我什么也没找到。关于C#的新异步功能,我有基本相同的问题-最终,必须执行异步代码。当没有UI线程时,这是否也会生成一个线程池线程?反过来,这是否需

c# - System.Data.IDbCommand 和异步执行?

系统.数据.SqlClient.SqlCommand有方法BeginExecuteNonQueryBeginExecuteReaderBeginExecuteXmlReader和EndExecuteNonQueryEndExecuteReaderEndExecuteXmlReader用于异步执行。System.Data.IDb命令只有ExecuteNonQueryExecuteReaderExecuteXmlReader仅用于同步操作。有异步操作的接口(interface)吗?另外,为什么没有BeginExecuteScalar? 最佳答案

c# - 如何创建 C# 异步 powershell 方法?

所以我想创建一种异步运行powershell脚本的方法。下面的代码是我到目前为止的代码,但它似乎不是异步的,因为它锁定了应用程序并且输出不正确。publicstaticstringRunScript(stringscriptText){PowerShellps=PowerShell.Create().AddScript(scriptText);//CreateanIAsyncResultobjectandcallthe//BeginInvokemethodtostartrunningthe//pipelineasynchronously.IAsyncResultasync=ps.Beg

c# - 为什么 Await 不会出现阻止对 EF 上下文的第二次操作

在ASP.NETMVC应用程序中,我收到以下关于使用EntityFramework上下文的Controller方法之一的错误消息。Asecondoperationstartedonthiscontextbeforeapreviousasynchronousoperationcompleted.Use'await'toensurethatanyasynchronousoperationshavecompletedbeforecallinganothermethodonthiscontext.Anyinstancemembersarenotguaranteedtobethreadsafe.