草庐IT

多线程通信

全部标签

c++ - qt在windows线程中发出信号

我正在开发一个QT应用程序。根据我的要求,我需要创建一个Windows线程,我必须在其中发出一个信号来通知我在不同类中的函数。当我尝试发出信号时,出现错误:cannotcallmemberfunction'voidDevice::DataRecieved(QByteArray)'withoutobjectemitDataRecieved(Rxdata);。是否有可能从Windows线程发出QT信号。谢谢。这是我的代码:DWORDWINAPIDevice::RxThread(LPVOIDpar){XLstatusxlStatus;unsignedintmsgsrx=RECEIVE_EVE

java - Java 中的多线程 : Do different Operating Systems offer different performance?

这可能是一个非常愚蠢的问题,但我并没有真正在网上找到答案(至少我不能理解),我只找到了一些基准测试结果likethese使用特定的基准测试软件。让我给出一些背景信息:我目前正在Ubuntu机器上开发一个java多线程程序,我在办公室有一台Windows10机器用于测试目的,该程序应该在连接的Windows7机器上运行到生产线。我对这种情况下的Ubuntu性能不感兴趣,因为客户想在Windows机器上使用它。当我在Windows10机器上测试该软件时,它只是“感觉”它比在Windows7PC上运行得更快,我必须说我没有对Windows7机器的完全访问权限,所以我不能接受测试它的时间,而且

C++ 从异步线程更新 Windows 窗口

所以我刚开始使用C++并想创建一个带有按钮的窗口,该按钮启动一个异步线程用于一个从5计数到0的计数器,代表一个耗时很长的任务。该数字应该已经显示在窗口上,并且在计数器计数时每秒更新一次。为此,子线程必须以任何方式与主窗口线程的消息循环进行通信。我试图通过以下方式做到这一点:使用主窗口的窗口句柄发送UpdateWindow使用主窗口的窗口句柄发送PostMessage但在这两种情况下,窗口都不会更新。因此,我怀疑通过将窗口句柄从主线程发送到子线程或将UpdateWindow消息从子线程发送到主线程或两者都发生错误,或者我完全偏离轨道并且一切都是错误的。也许我的思路也是错误的,我应该换一种

c++ - 从辅助线程调用 UpdateWindow()

我有一个用于显示非常复杂的vector图形的Windows应用程序。由于绘图需要一段时间才能完成,我将渲染逻辑移到了一个单独的线程中。相关代码片段如下。这里的CCanvas是从CWnd派生出来的,m_MemDC是绘制所有图形的CDC指针。OnPaint()处理程序将此memdc内容位传输到PaintDC。在Render()方法中,一旦图像绘制完成,我必须更新显示窗口。这里我直接调用了Invalidate()和UpdateWindow()方法。从辅助线程调用这些方法是否安全?voidCCanvas::UpdateDisplay(){::SetEvent(m_hRenderWaitEven

node.js - 在与本地网络服务器通信的 Electron 应用程序中实现 socket.io

我必须让本地运行的Web服务器与本地运行的WindowsElectron应用程序通信,以便发送一些消息,Electron应用程序会将其显示为通知。我看到有人推荐使用socket.io进行客户端和服务器之间的实时通信,但我发现很难理解它,因为没有我可以研究的示例来了解它的实际工作原理。欢迎提供有关此主题的任何来源和解释。 最佳答案 只需通过thistutorial.从简单的网络开始。当你让它工作时-将它移植到Electron。 关于node.js-在与本地网络服务器通信的Electron应

c++ - 纤维可以在线程之间迁移吗?

在线程A中创建的纤程是否可以切换到在线程B中创建的另一个纤程?为了使问题更具体,一些操作系统本身就实现了纤程(windowsfibers),其他需要自己实现(在linux中使用setjumplongjump等)。Libcoro例如,将所有这些都包装在一个API中(对于Windows,它只是原生纤程的包装器,对于Linux,它自己实现它等)那么,如果可以在线程之间迁移纤程,您能给我一个在windows(linux)中使用c/c++的示例用法吗?我在boost库中找到了一些关于光纤迁移的信息documentation,但它的实现和平台依赖性不够具体。我仍然想了解如何仅使用Windows光纤

windows - 通过 IOCP 的串行通信

是否可以将IO完成端口用于串行I/O?根据WindowsviaC/C++的说法,它暗示了这是可能的,并且确实给出了一个使用IOCP与物理文件的示例,显示了与CreateFile、ReadFile、WriteFile等的工作。然而,这实际上可以与串行通信一起工作——有没有人得到有用吗?我在网上找不到任何这方面的例子,但我不能第一个尝试吗? 最佳答案 是的,将I/O完成端口用于串行I/O工作正常。为适合IOCP的串行端口创建文件句柄需要一些设置工作。但是一旦设置完成,您就可以执行异步操作ReadFile()和WriteFile()与常规

c++ - 向调用线程发出资源已被使用的信号

抽象问题略...我们有这样一种情况,我们有一个可以被2或3个线程同时访问的结构。如果结构已被修改,我们希望向试图修改该结构的线程发出信号。例如目前的代码:thread0:struct->modify(varSomeNewState)thread1:struct->modify(varSomeNewState)thread2:struct->modify(varSomeNewState)voidstruct::modify(varSomeNewState){EnterCriticalSection(&criticalSection);changesomestate...LeaveCrit

windows - 如何加速 Windows XP 应用程序中的 UDP 通信

我正在对软件进行维护,遇到一个我不明白的问题。应用程序是使用MicrosoftVisualC++6开发的,可在WindowsXP上运行。它由21个应用程序组成,这些应用程序通过UDP套接字相互通信。它是一个嵌入式航空电子系统的模拟,用于在PC环境中调试系统。每个应用程序模拟嵌入式系统中的一个节点,嵌入式网络通过UDP进行模拟。该系统最初在多台PC上运行,但现在可以在一台四核机器上运行。系统正在运行,但通信速度慢得令人讨厌。但是,打开InternetExplorer并访问一两个网站会设置一些东西,这会导致我的应用程序之间的通信突然变得非常快。所以我的问题是InternetExplorer

c# - 帮助windows TCP端口通信

我刚开始了解进程间通信的工作原理。我在我的本地机器上使用两个应用程序,一个源应用程序和一个服务器应用程序。源应用程序通过我电脑上配置的端口广播文件。服务器应用程序监听这些文件并将它们公开到互联网供用户流式传输。我想从等式中删除服务器应用程序并编写一个新的应用程序来与源应用程序通信。到目前为止,我的应用程序已连接到端口并正在监听。我能够从端口接收消息。我收到的消息似乎是元数据,没有文件。我的假设是服务器应用程序在获取此元数据信息以获取文件后发送响应。因此我的应用程序需要模仿服务器应用程序。但是我不知道如何响应源应用程序的端口。1)是否有一种工具可以用来监控源应用程序和服务器应用程序之间的