- 博客(15)
- 资源 (3)
- 收藏
- 关注

原创 Windows API 封装多线程编程
将Windows 多线程API封装成一个类XThread,//XThread.h#pragma once#ifdef XPLATFORM_EXPORTS#define XPLATFORM_API __declspec(dllexport)#else#define XPLATFORM_API __declspec(dllimport)#endifclass XPLATFORM_API ...
2018-07-04 15:57:01
299

原创 临界区的C++类封装
之前学习了临界区的使用,但是使用方式是极其不方便的,还使用了一个全局变量CRITICAL_SECTION section;调用函数还要访问变量,整个临界区代码散落在各地,本文使用封装来增加代码的可读性。注:仍然要使用一个全局变量。封装XMutex类代码如下://.h#pragma once#ifdef XPLATFORM_EXPORTS#define XPLATFORM_API __decls...
2018-07-04 14:44:11
727

原创 拷贝构造函数、 深拷贝&浅拷贝
拷贝构造函数 对于基本数据类型,拷贝构造函数类似如下:int a = 10;float b = 100.0;而对于自定义的结构,拷贝构造函数并没有那么随意。
2018-07-03 08:12:11
190
原创 伪架构之 C++ 窗口多线程+多线程数据处理
1. 写一个窗口类。2. 一个与窗口进行交互的线程类3. 一个用于数据处理的线程类总的来说就是三个类。
2018-07-09 14:36:58
557
原创 Window API的多线程编程
非常简单,直接代码#include <process.h>#include <iostream>using namespace std;void ThreadMain(void* para){ int* p = (int*)para; cout << *p << endl; _endthread();}int main(){...
2018-07-04 15:53:37
366
原创 多线程售票程序(C++11 线程互斥锁的使用)
先贴代码:#include <iostream>#include <thread>#include <mutex>#include <windows.h>using namespace std; //有些库中也会有thread,名字会产生冲突, //因此,std命名空间不去引用static int ticks =...
2018-07-04 15:40:30
926
原创 C++11 的线程类与互斥类
vs2013 以上版本已经支持C++11 线程类和互斥类1. 使用函数thread来传送(不推荐)。#include <iostream>#include <thread>#include <mutex>using namespace std; //有些库中也会有thread,名字会产生冲突, //因此,std命名空间不去引用...
2018-07-04 15:16:45
387
原创 如何检查程序只有一个运行实例?
有时候运行多个实例可能会造成错误,尤其是进程中有多个线程时。#include<iostream>#include<windows.h>using namespace std;int main(){ cout << "In this process!\n"; HANDLE hMutex = CreateMutex(NULL, true, L"XOne...
2018-07-04 15:02:52
343
原创 互斥访问、临界区、线程同步
临界区的使用原则:尽晚使用,尽早退出记得释放临界区:每个进程中访问临界资源的那段代码称为临界区。一般线程同步都是使用临界区来实现的,临界区是系统级的API,是最高效的一种方法。当对一个Buffer写入数据时,如果不加入临界区,则会导致写乱,即ABBBBAAAAABBBBBBB....。我们想要的结果为AAAAAAAAA......,或者BBBBBBBBBBBB........无临界区代码如下(XT...
2018-07-04 14:29:44
1392
原创 线程的挂起与恢复
线程的挂起与恢复缺点:什么时候调用?挂起后的资源会存在,会发生一些不可预知问题!XThread.h#pragma once#ifdef XPLATFORM_EXPORTS#define XPLATFORM_API __declspec(dllexport)#else#define XPLATFORM_API __declspec(dllimport)#endifclass XPLAT...
2018-07-04 13:46:18
1152
原创 vs配置 (dll 与 exe)
在工程项目中,经常遇到使用dll的情况,那么相应的生成目录等,该如何设置是一个很巧妙地问题。dll项目属性地设置输出目录(dll 与 lib):1. 链接器-输出文件: ..\..\bin\xplatform_d.dll (原始:)2. 链接器-高级-导入库: ..\..\libxplatform_d.lib (原始:)exe项目属性设置1. 设置包含目录、包含库(头文件、lib库文件)...
2018-07-04 11:29:35
1368
原创 Qt 多线程
使用线程池能够比较方便的操作QThreadPool threadPool;threadPool.setMaxThreadCount(1);QtConcurrent::run(&threadPool, [&cloud1, &cloud_f_1, &cloud_f1](){});threadPool.waitForDone();...
2018-07-03 17:30:32
159
原创 计算卡死问题
最近在做一个程序,有的可以成功计算,有的则会一直计算不输出结果,这就需要根据一定阈值,强行终止计算。多线程法这种方法是不适用的,因为我的计算过程中会使用共享指针,强行关闭线程会使堆上的数据不能释放。多进程法进程被杀死系统会释放资源,故可行。计算中进行判断如果时间过长,则停止返回。...
2018-07-03 13:56:31
1336
原创 QTableWidget 用法总结
//原创,请勿转载1. QTableWidget 建议对应的数据模型(QStandardItemModel)(MVC模式)#include <QStandardItemModel>QStandardItemModel *data_model;data_model = new QStandardItemModel();//设置数据模型 表头 data_model->s...
2018-07-02 11:13:58
957
C++窗口+后台线程+多线程数据处理编程思想及源代码
2018-07-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人