c++中多线程的简单使用

#include "stdafx.h"
#include <windows.h>
#include <windowsx.h>
#include "resource.h"
#include "MainDlg.h"
BOOL isCancel=FALSE;
HWND hwnd1;
BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch(uMsg)
    {
        HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
        HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
		HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
    }

    return FALSE;
}

BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
	hwnd1=hwnd;
    return TRUE;
}
DWORD WINAPI ThreadFun(LPVOID Lpparam)//要运行的耗时操作,如果要用 Lpparam 需要显式转换
{

	SetDlgItemText(hwnd1,IDC_EDIT1,"正在连接服务器…");
	Sleep(4000);
	if(isCancel==TRUE)
	{
		SetDlgItemText(hwnd1,IDC_EDIT1,"登陆已取消!");
		return -1;
	}

	SetDlgItemText(hwnd1,IDC_EDIT1,"正在验证密码…");
	Sleep(4000);
	if(isCancel==TRUE)
	{
		SetDlgItemText(hwnd1,IDC_EDIT1,"登陆已取消!");
		return -1;
	}
	SetDlgItemText(hwnd1,IDC_EDIT1,"验证通过!");
	return 0;
}
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
    switch(id)
    {
        case IDC_OK:
		{
			isCancel=FALSE;
			CreateThread(NULL,0,ThreadFun,0,0,0);//新的线程运行函数,第4个参数可以给函数传参数值
		}
        break;
		case IDC_btnCancel:
			{
				isCancel=TRUE;
			}
			break;;
        default:
		break;
    }
}

void Main_OnClose(HWND hwnd)
{
    EndDialog(hwnd, 0);
}
时间: 2024-10-25 07:04:07

c++中多线程的简单使用的相关文章

Python中多线程及程序锁浅析_python

Python中多线程使用到Threading模块.Threading模块中用到的主要的类是Thread,我们先来写一个简单的多线程代码: 复制代码 代码如下: # coding : uft-8 __author__ = 'Phtih0n' import threading class MyThread(threading.Thread):     def __init__(self):         threading.Thread.__init__(self)     def run(sel

Eclipse客户端程序中多线程的使用

简介:本文分析了Eclipse中多线程程序的实现,讨论了在Eclipse客户端程序开发中应用多线程的方 法和要注意的问题,同时也讨论了多线程程序的一些调试和问题解决的方法. Eclipse作为一个开发平台,使用越来越广泛,基于Eclipse Rich Client Platform开发的客户端程序 也越来越多.在当今越来越复杂的应用环境中,我们的客户端程序不可避免的要同时进行多任务的处理. 一个优异的客户端程序都会允许用户同时启动多个任务,从而大大提高用户的工作效率以及用户体验.本 文中我们来谈

浅谈.NET下的多线程和并行计算(九)Winform中多线程编程基础 下

在之前的文章中我们介绍过两种Timer和BackgroundWorker组件,在上文中我们提到过,强烈建议在UI 线程上操作控件,否则很容易产生人品问题.可以想到,上次介绍的两个Timer基于ThreadPool,回调方 法运行于不同于UI线程的新线程上,在这个方法中操作控件需要进行 Invoke或BeginInvoke.其实,还有 第三种System.Windows.Forms.Timer,它可以让回调事件在UI线程上执行,我们来做一个实验比较一下 System.Windows.Forms.T

浅谈.NET下的多线程和并行计算(八)Winform中多线程编程基础 上

首先我们创建一个Winform的应用程序,在上面添加一个多行文本框和一个按钮控件,按钮的事件如下 : Thread.Sleep(1000); StringBuilder sb = new StringBuilder(); for (int i = 0; i < 10000; i++) sb.Append("test"); string s = sb.ToString(); textBox1.Text = s; 首先我们可以把这个操作理解为一个非常耗时的操作,它至少占用1秒的时间.

PHP中的traits简单使用实例

  这篇文章主要介绍了PHP中的traits简单使用实例,本文着重讲解traits的语法.traits有什么作用.什么情况下使用traits,需要的朋友可以参考下 PHP 5.4中的traits,是新引入的特性,中文还真不知道如何准确翻译好.其实际的目的,是为了有的场合想用多继承,但PHP又没多继承,于是就发明了这样的一个东西. Traits可以理解为一组能被不同的类都能调用到的方法集合,但Traits不是类!不能被实例化.先来例子看下语法: ? 1 2 3 4 5 6 7 8 9 10 11

php中的观察者模式简单实例

 这篇文章主要介绍了php中的观察者模式简单实例,观察者模式是设计模式中比较常见的一个模式,包含两个或者更多的互相交互的类,本文直接给出实现代码,需要的朋友可以参考下     观察者模式是设计模式中比较常见的一个模式,包含两个或者更多的互相交互的类.这一模式允许某个类观察另外一个类的状态,当被观察类的状态发生变化时候,观察者会进行得到通知进而更新相应状态. php的SPL标准类库提供了SplSubject和SplObserver接口来实现,被观察的类叫subject,负责观察的类叫observe

python中for语句简单遍历数据的方法

  这篇文章主要介绍了python中for语句简单遍历数据的方法,以一个简单实例形式分析了Python中for语句遍历数据的技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了python中for语句简单遍历数据的方法.分享给大家供大家参考.具体如下: 代码如下: for name in ["kak", "John", "Mani", "Matt"]: print(name) 运行结果如下: 代码如下: kak J

js模拟C#中List的简单实例

 本篇文章主要是对js模拟C#中List的简单实例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助   代码如下: /*  * List 大小可变数组  * version: 1.0  */ function List() {     this.list = new Array(); };   /**  * 将指定的元素添加到此列表的尾部.  * @param object 指定的元素  */ List.prototype.add = function(object) {     thi

C++中多线程使用临界区域进行互斥,造成死锁,百思不得其解求指点为啥会死锁

问题描述 C++中多线程使用临界区域进行互斥,造成死锁,百思不得其解求指点为啥会死锁 C++中多线程使用临界区域进行互斥,造成死锁,百思不得其解求指点为啥会死锁 // 在主界面中显示提示信息void CIOCPModel::_ShowMessage(const int columnconst CString szFormat...){ // 根据传入的参数格式化字符串 CString strMessage; va_list arglist; // 处理变长参数 va_start(arglist