新建类吗,那如果我要单独把一个函数放入新线程中运
我只是举个例子
class CMyAppDlg : public CDialog {
...
void CallThreadFunc(int a, int b);
static UINT ThreadFuncWrapper(LPVOID* p);
struct ThreadParam {
CMyAppDlg* pThisl;
int a;
int b;
}; //根据线程函数的参数而定
void ThreadFunc(int a, int b); //线程函数,自己写
...
};
void CMyAppDlg::CallThreadFunc(int a, int b) {
ThreadParam* tp;
*(LPVOID*)&tp = malloc(sizeof(ThreadParam));
tp.pThis = this;
tp.a = a;
tp.b = b;
CWinThread *t = AfxBeginThread(&CMyAppDlg::ThreadFuncWrapper, tp, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
t->m_bAutoDelete = TRUE;
t->ResumeThread();
}
UINT CMyAppDlg::ThreadFuncWrapper(LPVOID* p) {
ThreadParam param = *(ThreadParam*)p;
free(p);
param.pThis->ThreadFunc(param.a, param.b);
return 0;
}
调用的地方:
CallThreadFunc(1, 2);
像这样。
class CMyAppDlg : public CDialog {
...
void CallThreadFunc(int a, int b);
static UINT ThreadFuncWrapper(LPVOID* p);
struct ThreadParam {
CMyAppDlg* pThisl;
int a;
int b;
}; //根据线程函数的参数而定
void ThreadFunc(int a, int b); //线程函数,自己写
...
};
void CMyAppDlg::CallThreadFunc(int a, int b) {
ThreadParam* tp;
*(LPVOID*)&tp = malloc(sizeof(ThreadParam));
tp.pThis = this;
tp.a = a;
tp.b = b;
CWinThread *t = AfxBeginThread(&CMyAppDlg::ThreadFuncWrapper, tp, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
t->m_bAutoDelete = TRUE;
t->ResumeThread();
}
UINT CMyAppDlg::ThreadFuncWrapper(LPVOID* p) {
ThreadParam param = *(ThreadParam*)p;
free(p);
param.pThis->ThreadFunc(param.a, param.b);
return 0;
}
调用的地方:
CallThreadFunc(1, 2);
像这样。
佚名
2024-11-16 09:55:46
类似问题(10)
-
佚名2024-11-16 21:25:38
问MATLAB 函数的一个输入变量是另一个函数
答可以,比如你将第二个的function a=example(f,g,h.....)...... 输入给function [a,b]=example(c,d,e....
-
佚名2024-11-16 11:59:42
问C# 多线程,对同一个类新建6个对象,每个对象运行在不同的6个线程中
答你在给类中对象赋值的时候,有没有给对象赋值成了引用类型的数据,比如说类或者数组,如果是的话,当然你改这个类或数组的时候,被引用的你新建的类中的属性或字段可能会同...
-
佚名2024-11-16 15:54:40
问如何让新建的线程能共享UI线程的内存
答这个情况,我也遇到过!首先可以用进程管理看看啥东东占用了CPU,例如你用360安全卫士——功能大全——电脑优化——进程管理。其次可用360急救箱之类的查杀一下顽...
-
佚名2024-11-16 15:54:41
问求问单机游戏编程中新建一个npc 是创建新线程处理数据么
答MHOL一个快乐的狩猎季节 协同狩猎,和竞争狩猎十分有乐趣。另外后期应该会加入宠物系统。与猫猫一同作战。MHOL不仅有丰富的各种BOSS挑战,还有拥有非常丰富的...
-
佚名2024-11-16 11:27:02
问求助,新建一个线程实现延时操作
答从定义角度来说,线程不拥有内存资源(从内核中可以查到fork和vfork创建的都是线程,他们都不会新分配内存空间,而是和父进程共享内存空间),所以说你已经没有什...
-
佚名2024-11-16 15:22:25
问如果你把一个桌面上的新建文件夹隐藏了怎么弄出来
答进入我的电脑,或资源管理器,上方选择文件夹选项,查看高级设置,隐藏文件和文件夹,点一下“显示隐藏的文件、文件夹和驱动器”最后点确定。就能显示了
-
佚名2024-11-16 04:01:35
问如果我想建一个长跑队群,取什么名新颖?
答月球漫步,觅风者,望采纳
-
佚名2024-11-16 08:00:00
问以下叙述中正确的是( )A构成C程序的基本单位是函数 B 可以在一个函数中定义另一个函数C main ()
答A 最小单位:表达式基本单位:函数编译单位:文件
-
佚名2024-11-16 08:00:00
问如何给一个新公司做账,要开新账的流程
答搜一下"建新帐流程"吧,应该可以找到答案。
-
佚名2024-11-16 08:00:00
问在C#中比如有很多线程但c#最多允许25个线程同时运行一般都会小于25个线程 用什么方法查看正在运行的线程数
答using System;using System.Diagnostics;namespace CSharp.Sample { class Progra...
风水
起名
网名
说说
- 1 含 海 字的个性签名
- 2 lol竖着的个性签名一句话
- 3 摔倒了说说
- 4 快乐简单的说说
- 5 家长会空间说说
- 6 关于成长句子说说
- 7 展示新指甲的说说
- 8 打老鼠幽默搞笑说说
- 9 女拒绝闲聊天的说说
- 10 感觉自己好没用帮不上亲人的说说