带有进度条更新的 C++ 多线程套接字操作

     2023-02-16     28

关键词:

【中文标题】带有进度条更新的 C++ 多线程套接字操作【英文标题】:C++ Multi threaded socket operation with progress bar update 【发布时间】:2014-06-12 21:34:20 【问题描述】:

我有一个正在实现的 MFC DLL。主线程创建一个进度条(CProgressCtrl),然后启动一个 CWinThread 来执行一些套接字操作。这个想法是让主线程更新进度条,而另一个线程执行 sendto 套接字操作(数据请求)以请求数据。这是一个问题,由于遗留实现,接收功能是通过覆盖 CAsyncSocket 的 OnReceive 函数来完成的。调用 OnReceive 时,代码只是将数据复制到自己的缓冲区中,并允许稍后处理另一个函数。

目前,正在执行 sendto 操作(数据请求)的另一个线程正在检查缓冲区以查看序列号是否已增加。当 sendto 操作在主线程中时一切正常(这意味着 UI 将冻结),但是在我将 sendto 操作重新定位到另一个线程后,即使数据是从其他软件发送的,也不再调用 OnReceive(已验证)。

我的问题是,当对方明确发送数据时,为什么不调用 OnReceive?我知道这可能不是最佳设计,但由于遗留设计,我想保留当前设计。

【问题讨论】:

【参考方案1】:

CASyncSocket 绑定到创建它的线程。只有该线程可以接收 OnReceive 通知。

【讨论】:

那么在这种情况下,是否意味着我需要重写大部分代码?谢谢 不能说,因为您没有解释哪些线程创建 CAsyncSocket 对象以及它们是什么类型的线程。简单的规则是与一个 CAsyncSocket 对象相关的所有内容都必须在同一个线程中,并且该线程必须从 CWinThread 派生。即,它必须是消息处理线程。

多线程任务更新 1 个进度条 - UI C# WPF

】多线程任务更新1个进度条-UIC#WPF【英文标题】:Multiplethreadstasksupdating1progressbar-UIC#WPF【发布时间】:2021-07-1619:30:51【问题描述】:我一直在四处寻找有类似问题的人,但没有找到任何东西。我正在使用WPFUI编写C#应用程序。要... 查看详情

wpf多线程进度条更新进度(代码片段)

...ializeComponent();//启动后,检查下载更新文件//同时更新进度条Task.Run(()=>f 查看详情

c#通过线程来控制进度条(转)--讲解多线程对界面的操作

//通过创建委托解决传递参数问题privatevoid_btnRun_Click(objectsender,System.EventArgse){RunTaskDelegaterunTask=newRunTaskDelegate(RunTask);//委托同步调用方式runTask(Convert.ToInt16(_txtSecond.Value));}//通过创建委托解决传递参数问题,通过委托的 查看详情

pyqt5进度条qprogressbar的使用/多线程更新/按钮美化/图片编码/开机自启动(代码片段)

...钮可调用后台的爬虫程序。因此,需要通过添加一个进度条来反映当前的爬取进度。进度条Pyqt5设有进度条控件QProgres 查看详情

需要有关 gtkmm 中的多线程的帮助

...描述】:我在线程方面不是很差,我需要帮助,我有一个带有进度条的gtkmm窗口,任务是在后台执行多个shell脚本或shell命令并相应地更新进度条。我有一个button->clicked_signal()thread([this]worker-> 查看详情

winform实现多线程异步更新ui(进度及状态信息)

引言在进行Winform程序开发需要进行大量的数据的读写操作的时候,往往会需要一定的时间,然在这个时间段里面,界面ui得不到更新,导致在用户看来界面处于假死的状态,造成了不好的用户体验。所以在大量数据操作的应用上... 查看详情

带有进度条下载更新的自定义 UITableViewCell

】带有进度条下载更新的自定义UITableViewCell【英文标题】:CustomUITableViewCellwithProgressBardownloadupdate【发布时间】:2014-01-1509:28:56【问题描述】:我正在尝试使用进度条加载更新每个表格单元格,但我被卡住了。我为具有以下属性... 查看详情

异步函数调用,带有检查进度的方法

】异步函数调用,带有检查进度的方法【英文标题】:Asynchronousfunctioncall,withamethodtocheckprogress【发布时间】:2016-03-2114:09:57【问题描述】:我需要帮助才能在C++中实现异步函数调用。我是C++多线程的新手。应该有两个功能:一个... 查看详情

[c#]多线程总结(结合进度条)(代码片段)

线程生命周期未启动状态:当线程实例被创建但Start方法未被调用时的状况。就绪状态:当线程准备好运行并等待CPU周期时的状况。不可运行状态:已经调用Sleep方法已经调用Wait方法通过I/O操作阻塞死亡状态:当线程已完成执行... 查看详情

主视图控制器外的多线程进度条并发问题

】主视图控制器外的多线程进度条并发问题【英文标题】:Multi-threadedprogressbarconcurrencyissueoutsidethemainviewcontroller【发布时间】:2015-10-2910:02:20【问题描述】:我在同一个线程和视图控制器中找到了很多进度条更新解决方案,但它... 查看详情

没有多线程的 C++ 套接字非同步/并行代码

】没有多线程的C++套接字非同步/并行代码【英文标题】:C++SocketsUnsynched/ParallelCodewithoutMultithreading【发布时间】:2016-11-0114:37:09【问题描述】:我有这个用c++编写的2端(客户端和服务器)程序,它基本上是一个“聊天程序”。... 查看详情

android检查更新版本(带有通知栏,进度条,notification)

...友盟的自动更新后期会不让用了,所以自己谢了一个带有进度条通知栏的检查更新,请大家多提意见,话不多说,上代码。首先,要去后台获取检查的接口判断是否要更新,如果需要更新,如下;St... 查看详情

vue多文件上传进度条进度不更新问题

...片上传的组件,需求是做到多文件依次上传,并显示上传进度条。逻辑部分实现了以后,在更新进度条视图的时候出现一点问题:动态计算生产的进度progress属性不会自动更新。原来 查看详情

带线程的 PyQt 进度条更新

】带线程的PyQt进度条更新【英文标题】:PyQtProgressBarUpdatewithThreads【发布时间】:2017-08-0418:44:49【问题描述】:我一直在编写一个在服务器上运行远程脚本的程序。所以,我需要用一个栏显示进度,但是当我运行我的代码时,GUI... 查看详情

linux网络(c++)——网络套接字(tcp/udp编程模型)多进程,多线程,线程池服务器开发(画图解析)(代码片段)

目录一.套接字基本概念📚  IP地址📚 TCP和UDP协议 📚 端口号 📚 端口号vs进程pid📚 网络字节序本地字节序转换成网络字节序网络字节序转换为本地字节序二.套接字的基本操作📚 socket的创建域(domai... 查看详情

后台线程中的进度条.setProgress(variable)

...的社区,谢谢!)所以,我有这个问题:我正在开发一个带有选项卡布局的android应用程序。每当我导航到“状态”选项卡时,我想显示一个根据变量值更新的循环Progr 查看详情

recyclerview中多任务下载文件进度条更新的问题

...listview中进行下载时,由于条目复用等原因会导致下载的进度条更新错乱。你可能觉得条目复用问题我解决过那么多次,加个tag了啥的就解决了不是。有这个想法说明你没做过下载的处理。因为在下载的过程中,进度条是一直处... 查看详情

android中progressdialog进度条对话框的使用(使用子线程模拟更新进度)

...ogressDialog可以实现多种样式,今天我们就来实现模拟水平进度条更新的效果。具体实现:布局页面一个按钮就不再说明。下面来看在Activity代码中的实现:publicclassMainActivityextendsAppCompatActivityimplementsView.OnClickListenerprivateintiPos=0;//... 查看详情