• 大小: 64KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-07
  • 语言: 其他
  • 标签: ThreadPool  

资源简介

Windows下比较完美线程池的升级版,加入了我对线程池能想到的几乎所有功能,而且更改了第一版本的一些Bug,并进行了效率的优化。 第一版的介绍地址:http://blog.csdn.net/fishjam/article/details/8632049 功能列表如下: 1.能自动根据任务和线程的多少在 最小/最大 线程个数之间调整(Vista后的系统有 SetThreadpoolThreadMaximum 等函数有类似功能),现已支持动态改变最小、最大值。 2.可以设置等待Job的最大个数,并在加入Job时,队列满了的话,可以设置等待超时并根据返回值进一步处理 3.能方便的对任一任务进行取消,如任务尚未运行则由框架代码处理,如任务已经运行,则需要 JobBase 的子类根据 GetJobWaitType 的返回值进行处理 4.能对单个Job或整个线程池进行 暂停、继续、停止 处理 -- 需要 JobBase 的子类根据 GetJobWaitType 的返回值进行处理 5.支持回调方式的反馈通知( Progress/Error 等) 6.使用模版方式实现,能方便的进行参数传递 7.在加入任务时可以设置优先级,现已支持动态调整优先级 8.使用的是微软的基本API,能支持WinXP、Vista、Win7等各种操作系统(CreateThreadpoolWork 等只能在Vista后才能使用) 9.可以有多个实例,方便进行控制(QueueUserWorkItem 等是单实例) 10.采用的是对称模式的线程池(没有管理线程),运行成本低

资源截图

代码片段和文件信息

// FTLDemo.cpp : 定义应用程序的类行为。
//

#include “stdafx.h“
#include “FTLDemo.h“
#include “FTLDemoSheet.h“
//#include 
//#include 
//#include 
//#include 
//#include “vld.h“
//#include 
#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CFTLDemoApp

BEGIN_MESSAGE_MAP(CFTLDemoApp CWinApp)
ON_COMMAND(ID_HELP &CWinApp::onhelp)
END_MESSAGE_MAP()


// CFTLDemoApp 构造

CFTLDemoApp::CFTLDemoApp()
{
// 将所有重要的初始化放置在 InitInstance 中
}


// 唯一的一个 CFTLDemoApp 对象

CFTLDemoApp theApp;
//CComModule _Module;     //为了使用CFResourcelessDlg

// CFTLDemoApp 初始化

BOOL CFTLDemoApp::InitInstance()
{
    //FUNCTION_BLOCK_INIT();
    BOOL bRet = FALSE;
    CoInitializeEx(NULL COINIT_APARTMENTTHREADED);
    {
FUNCTION_BLOCK_TRACE(0);
        //VLDEnable();
        //FAST_TRACE_OPTIONS traceOptions;
        //traceOptions.traceThreshold = tlTrace;
        //traceOptions.bWriteToFile = TRUE;
        //FTL::CFFastTrace::GetInstance().SetTraceOptions(&traceOptions);

        // 如果一个运行在 Windows XP 上的应用程序清单指定要
        // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
        //则需要 InitCommonControlsEx()。否则,将无法创建窗口。
        INITCOMMONCONTROLSEX InitCtrls;
        InitCtrls.dwSize = sizeof(InitCtrls);
        // 将它设置为包括所有要在应用程序中使用的
        // 公共控件类。
        InitCtrls.dwICC = ICC_WIN95_CLASSES;
        InitCommonControlsEx(&InitCtrls);

        CWinApp::InitInstance();

        AfxEnableControlContainer();

        //FTL::CFFileUtil::DumpAllAPISystemFolderPath();

        // 标准初始化
        // 如果未使用这些功能并希望减小
        // 最终可执行文件的大小,则应移除下列
        // 不需要的特定初始化例程
        // 更改用于存储设置的注册表项
        SetRegistryKey(_T(“Fishjam“));

//FTL::CFCrashHandler crashHandler;
        //crashHandler.SetDefaultCrashHandlerFilter();

        //FTL::CFAutoGdiplus   gdiPlusInitobject;
        //FTL::CFWinsockEnvInit winsockInit;

        //CFTLDemoDlg dlg;
        //m_pMainWnd = &dlg;
        //INT_PTR nResponse = dlg.DoModal();
        CFTLDemoSheet sheet(TEXT(“FTL Demo“));
        INT_PTR nResponse  = sheet.DoModal();
        if (nResponse == IDOK)
        {
        }
        else if (nResponse == IDCANCEL)
        {
        }

        // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
        //  而不是启动应用程序的消息泵。
    }
    CoUninitialize();
    //FUNCTION_BLOCK_UNINIT();
    return FALSE;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        2620  2015-12-29 21:36  FTLDemo.cpp
     文件         482  2014-06-24 20:21  FTLDemo.h
     文件       38902  2016-01-18 23:14  FTLDemo.rc
     文件        1233  2015-12-29 21:25  FTLDemo.sln
     文件       21504  2016-01-18 23:17  FTLDemo.suo
     文件        9944  2015-12-29 21:42  FTLDemo.vcproj
     文件        2916  2015-12-29 21:27  FTLDemoSheet.cpp
     文件        1050  2015-05-24 17:38  FTLDemoSheet.h
     文件        2613  2015-12-29 21:45  ftlFake.h
     文件          85  2013-03-03 15:34  ftlThread.cpp
     文件        3954  2013-03-03 15:38  ftlThread.h
     文件       18225  2015-12-29 21:50  ftlThreadPool.h
     文件       38094  2015-12-29 21:46  ftlThreadPool.hpp
     文件        2891  2014-06-24 20:21  ReadMe.txt
     目录           0  2015-12-29 21:51  res\
     文件       21630  2014-06-24 20:21  res\FTLDemo.ico
     文件         363  2014-06-24 20:21  res\FTLDemo.rc2
     文件       15064  2015-12-19 16:24  resource.h
     文件         166  2015-12-29 21:35  stdafx.cpp
     文件        2339  2015-12-29 21:40  stdafx.h
     文件        1739  2015-12-29 21:36  ThreadPage.h
     文件       16723  2015-12-29 21:42  ThreadPoolPage.cpp
     文件        3963  2015-12-29 21:36  ThreadPoolPage.h

评论

共有 条评论