草庐IT

asio_handler_invoke

全部标签

.net - .NET 与 .NET Core 2 的不同 P/Invoke 入口点

我正在将一些代码从.NET(4.5)移动到.NETCore(2),并且有一个像这样的多目标项目...net45;netcoreapp2.0代码库使用来自kernel32的Win32API函数CopyMemory,但我发现我需要根据我的目标框架使用不同的入口点名称。#ifNET45[DllImport("kernel32.dll",EntryPoint="CopyMemory",SetLastError=false)]#else[DllImport("kernel32.dll",EntryPoint="RtlCopyMemory",SetLastError=false)]#endifpu

c++ - Code::Blocks 和 Boost Asio。它只是行不通

我无法让Boost.Asio在Code::Blocks中编译。我安装并编译了BoostC++库,并运行了给定的测试示例。现在我正在尝试让Boost.Asio运行。这是编译器调用:mingw32-g++.exe-L"C:\ProgramFiles(x86)\boost\boost_1_49_0"-obin\Debug\server.exeobj\Debug\server.oD:\CodeBlocksIDE\CodeBlocks\lib\libboost_filesystem-mgw44-mt-1_49.aD:\CodeBlocksIDE\CodeBlocks\lib\libboost_s

c++ boost asio 异步函数不能在 dll 中工作

我有这个基于教程的简单的boostasio代码,它在从exe中调用时工作正常,但在使用LoadLibrary从dll中运行时崩溃。它在提升代码而不是我的代码中崩溃。90%的时间它会在其线程互斥函数内部崩溃。与exe相比,在dll中执行代码时是否有任何限制?这是我的代码:Connection::Connection(boost::asio::io_service&ioservice):m_Socket(ioservice),m_Resolver(ioservice){}voidConnection::ConnectTo(){boost::asio::ip::tcp::resolver::

windows - 使用临时端口的 Boost::asio UDP 广播

我在boost::asio下遇到了udp广播事务的问题,与以下代码片段有关。由于我尝试在这种情况下进行广播,因此deviceIP="255.255.255.255"。devicePort是我的设备指定的管理端口。我想使用一个临时本地端口,所以我更愿意在连接后尽可能不必使用socket.bind(),并且代码通过设置localPort=0支持单播。boost::asio::ip::address_v4targetIP=boost::asio::ip::address_v4::from_string(deviceIP);m_targetEndPoint=boost::asio::ip::u

c# - delegate.Invoke 是如何工作的?

如果我在我的代码中创建一个委托(delegate),例如:delegatevoiddostuff(stringo);这会生成一个派生自System.MulticastDelegate的类,该类实现了三个方法-Invoke、BeginInvoke和EndInvoke.如果我查看为Invoke编译的IL,我看到的是:.methodpublichidebysignewslotvirtualinstancevoidInvoke(stringo)runtimemanaged{}//endofmethoddostuff::Invoke该方法不包含任何代码。调用它确实有效——委托(delegate)

c# - 如何制作从 C# "Thread-safe"调用的 C (P/invoke) 代码

我有一些使用单个全局变量的简单C代码。显然这不是线程安全的,所以当我在C#中使用P/invoke从多个线程调用它时,事情就搞砸了。如何为每个线程单独导入此函数,或使其成为线程安全的?我尝试声明变量__declspec(thread),但这导致程序崩溃。我还尝试制作一个C++/CLI类,但它不允许成员函数是__declspec(naked),我需要(我正在使用内联汇编)。我在编写多线程C++代码方面经验不足,因此可能缺少某些内容。下面是一些示例代码:C#[DllImport("MyDll.dll",CallingConvention=CallingConvention.Cdecl)]pu

c# - 等效于 Dispatcher.Invoke 或 Dispatcher.RunAsync 的可移植类库

在.NET、Windows8和WindowsPhone7中,我有类似这样的代码:publicstaticvoidInvokeIfRequired(thisDispatcherdispatcher,Actionaction){if(dispatcher.CheckAccess()){action();}else{dispatcher.Invoke(action);}}我将如何在可移植类库中做一些事情?最好有一个与平台无关的实现。我的想法是使用WP7中不可用但肯定会很快的TPL。//PortableDispatchermustbecreatedontheUIthreadandthenmad

c# - 发送邮件异步 : An asynchronous module or handler completed while an asynchronous operation was still pending

在使用SendMailAsync时出现以下错误:Anasynchronousmoduleorhandlercompletedwhileanasynchronousoperationwasstillpending我的代码:publicstaticasyncTaskSendEmail(MessageContentmessageContent,stringemailBody){SmtpClientsmtpClientNoSend=newSmtpClient();awaitsmtpClientNoSend.SendMailAsync(mailMessage);}来自Controller的调用:

c# - Dispatcher.Invoke with anonymous delegate 在 Silverlight 中有效但在 WPF 中无效

在Silverlight4中,我有一个自定义服务类,它有一个异步的Completed事件。在Completed事件中,我获取返回的数据并通过如下方式调用填充方法:privatevoidservice_Completed(objectsender,CompletedEventArgsargs){Dispatcher.BeginInvoke(()=>populateInbox(args.Jobs));}privatevoidpopulateInbox(Listjobs){inbox.DataContext=jobs;}BeginInvoke在SL4中工作,但是当我将它移植到WPF时,出现以

c# - 使用 Handler 跟踪文件

我目前正在使用Asp.Net和C#开发一个网站。我正在使用Asp.NetHandler来允许用户下载文件。我可以毫无问题地下载文件。但是我需要记录哪些文件已成功下载。这部分对我来说似乎无法正常工作。例如。如果我单击要下载的文件,然后在浏览器提示上单击取消,我的代码仍会写入日志。我似乎无法弄清楚如何在文件成功下载后写入日志only。我的代码在下面。publicvoidProcessRequest(HttpContextcontext){stringlogFilePath="PathToMyLogFile";stringfilePath=Uri.UnescapeDataString(con