线程同步互斥主要按钮设计思想
2017-02-22 13:15
253 查看
线程同步互斥主要按钮设计思想
1.“开始”按钮设计思想开始按钮利用循环,创建相应数量的线程。下面以生产者线程的创建进行举例说明:
(1) 在参数设置界面获取到的生产者线程数量赋值给Produce_Num,从而进行循环个数的限定。
for (k = 0; k <= PAGE1.Produce_Num - 1; k++)
(2) 首先进行参数的赋值,并将其作为实参传递给该线程的函数入口。
{
pthread1.dlg = this; //可以写到for循环外面 pthread1.ptid = k;
(3) 调用创建线程的函数,线程的函数入口位PUTTER函数,参数位上述设置好的指针。第4个参数为零表示创建之后立即激活。
P_hThreads[k] = CreateThread(NULL, 0, PUTTER, (LPVOID)&pthread1, 0, NULL);
(4) 暂停,继续,结束,清空按钮与上述类似,在此不再赘述。
2.“保存”按钮设计思想
(1) 保存按钮主要保存历史记录界面的listbox中三个BUFFER各自的内容,首先进行保存路径的获取。
CString PATH;
CFileDialog dlg(TRUE);
if (dlg.DoModal() == IDOK)
PATH = dlg.GetPathName(); //获取文件路径
(2) 定义一个Cfile对象,并将其变为UNICODE编码,以进行换行操作和防止中文乱码。
int n, i,j,k;
n = h->PAGE3.Show1.GetCount();
CFile myFile;
CFile mFile(PATH, CFile::modeWrite | CFile::modeCreate);
wchar_t unicode = 0xFEFF;
mFile.Write(&unicode, sizeof(wchar_t));//将文件变为UNICODE编码
(3) 将BUFFER1内容写入。将写入操作设置为一个循环,从BUFFER1的n-1行开始一直到第0行结束进行保存,即按照BUFFER1历史记录中出现的先后顺序,将其保存至相应的文件。
b = “BUFFER1历史记录”;
mFile.Write(b, 22);
mFile.Write(_T(“\r\n”), 2 * sizeof(wchar_t));
for (i = n - 1; i >= 0; i–)
{
h->PAGE3.Show1.GetText(i, a);
mFile.Write(a, 8);
mFile.Write(_T(“\r\n”), 2 * sizeof(wchar_t));
mFile.Flush();
}
相关文章推荐
- 线程同步互斥之线程PUTTER函数设计思想
- 设计模式中主要应用思想之我见
- jQuery的基本设计思想和主要用法
- C语言主要应用领域,C和C++的区别,自上向下和自下向上设计思想
- 线程同步互斥项目之主要函数
- H5 应用返回按钮的js代码设计,设计思想模仿stack
- Visual C++中位图按钮的新颖设计
- 从魔兽中的英雄设计机制来窥探面向对象的思想
- LavaX语言的设计思想
- 线程池的主要思想及其修正
- 商业网站设计主要原则
- 面向对象设计思想(C#)
- 利用asp.net 2.0构建企业级门户平台(1、设计思想)
- ERP分模块设计思想探讨---库存管理
- UOP设计思想应用之数据缓存
- “方法、设计、实现、管理之三十六计”读后感——《软件工程实践导论》一书的思想方法简析
- 关于软件系统架构设计的一些新思想
- 微软msn服务器设计思想初步理解
- 商业网站设计主要原则
- 入门--使用纯 CSS 设计3D按钮