亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? batch.cpp

?? Windows via C/C++, Fifth Edition圖書源代碼
?? CPP
字號:
/******************************************************************************
Module:  Batch.cpp
Notices: Copyright (c) 2008 Jeffrey Richter & Christophe Nasarre
******************************************************************************/


#include "..\CommonFiles\CmnHdr.h"     /* See Appendix A. */
#include <Windowsx.h>
#include <WinBase.h>
#include <WinNT.h>


// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <strsafe.h>

#include "Batch.h"


//////////////////////////////////////////////////////////////////////////////


// Global variables
HWND     g_hDlg = NULL;
PTP_WORK g_pWorkItem = NULL;
volatile LONG g_nCurrentTask = 0;


// Global definitions
#define WM_APP_COMPLETED (WM_APP+123)


//////////////////////////////////////////////////////////////////////////////


void AddMessage(LPCTSTR szMsg) {

   HWND hListBox = GetDlgItem(g_hDlg, IDC_LB_STATUS);
   ListBox_SetCurSel(hListBox, ListBox_AddString(hListBox, szMsg));
}


//////////////////////////////////////////////////////////////////////////////


void NTAPI TaskHandler(PTP_CALLBACK_INSTANCE Instance, PVOID Context, PTP_WORK Work) {

   LONG currentTask = InterlockedIncrement(&g_nCurrentTask);

   TCHAR szMsg[MAX_PATH];
   StringCchPrintf(
      szMsg, _countof(szMsg), 
      TEXT("[%u] Task #%u is starting."), GetCurrentThreadId(), currentTask);
   AddMessage(szMsg);

   // Simulate a lot of work
   Sleep(currentTask * 1000);

   StringCchPrintf(
      szMsg, _countof(szMsg), 
      TEXT("[%u] Task #%u is done."), GetCurrentThreadId(), currentTask);
   AddMessage(szMsg);

   if (InterlockedDecrement(&g_nCurrentTask) == 0)
   {
      // Notify the UI thread for completion.
      PostMessage(g_hDlg, WM_APP_COMPLETED, 0, (LPARAM)currentTask);
   }
}


//////////////////////////////////////////////////////////////////////////////


void OnStartBatch() {

   // Disable Start button
   Button_Enable(GetDlgItem(g_hDlg, IDC_BTN_START_BATCH), FALSE);

   AddMessage(TEXT("----Start a new batch----"));
   
   // Submit 4 tasks by using the same work item
   SubmitThreadpoolWork(g_pWorkItem);
   SubmitThreadpoolWork(g_pWorkItem);
   SubmitThreadpoolWork(g_pWorkItem);
   SubmitThreadpoolWork(g_pWorkItem);

   AddMessage(TEXT("4 tasks are submitted."));
}


//////////////////////////////////////////////////////////////////////////////


void Dlg_OnCommand(HWND hWnd, int id, HWND hWndCtl, UINT codeNotify) {

   switch (id) {
      case IDOK:
      case IDCANCEL:
         EndDialog(hWnd, id);
         break;

      case IDC_BTN_START_BATCH:
         OnStartBatch();
         break;
   }
}


BOOL Dlg_OnInitDialog(HWND hWnd, HWND hWndFocus, LPARAM lParam) {

   // Keep track of main dialog window for error messages
   g_hDlg = hWnd;

   return(TRUE);
}


//////////////////////////////////////////////////////////////////////////////


INT_PTR WINAPI Dlg_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {

   switch (uMsg) {
      chHANDLE_DLGMSG(hWnd, WM_INITDIALOG, Dlg_OnInitDialog);
      chHANDLE_DLGMSG(hWnd, WM_COMMAND,    Dlg_OnCommand);
      case WM_APP_COMPLETED: {
         TCHAR szMsg[MAX_PATH+1];
         StringCchPrintf(
            szMsg, _countof(szMsg), 
            TEXT("____Task #%u was the last task of the batch____"), lParam);
         AddMessage(szMsg);
         
         // Don't forget to enable the button
         Button_Enable(GetDlgItem(hWnd, IDC_BTN_START_BATCH), TRUE);
      }
      break;
   }

   return(FALSE);
}



int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR pCmdLine, int) {

   // Create the work item that will be used by all tasks
   g_pWorkItem = CreateThreadpoolWork(TaskHandler, NULL, NULL);
   if (g_pWorkItem == NULL) {
      MessageBox(NULL, TEXT("Impossible to create the work item for tasks."), 
         TEXT(""), MB_ICONSTOP);
      return(-1);
   }
   
   DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, Dlg_Proc, 
      _ttoi(pCmdLine));

   // Don't forget to delete the work item
   CloseThreadpoolWork(g_pWorkItem);

   return(0);
}


//////////////////////////////// End of File /////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合图片区| 国产精品人成在线观看免费| 99久久伊人精品| 美国精品在线观看| 男人操女人的视频在线观看欧美| 亚洲精选免费视频| 亚洲少妇30p| 综合精品久久久| 亚洲另类中文字| 亚洲图片欧美视频| 亚洲成a天堂v人片| 亚洲国产aⅴ天堂久久| 日日夜夜一区二区| 久久精品国内一区二区三区| 久久99精品久久久久久国产越南| 久久精品国产亚洲a| 激情综合色综合久久综合| 国产剧情一区二区| aaa亚洲精品| 欧美性极品少妇| 日韩无一区二区| 久久久久久久久久看片| 中文字幕精品一区| 亚洲综合免费观看高清在线观看| 香港成人在线视频| 国产资源在线一区| 国产不卡在线视频| 99视频有精品| 91麻豆精品国产91久久久久| 2020国产精品自拍| 亚洲精品视频自拍| 日韩电影免费在线看| 国产超碰在线一区| 欧美二区在线观看| 国产精品久久久久影院色老大| 亚洲精品国产精华液| 国产自产高清不卡| 欧美人妖巨大在线| 国产精品五月天| 亚洲成人精品一区| 成人国产精品视频| 日韩一区和二区| 综合av第一页| 精品一区二区免费视频| 日本韩国精品在线| 精品福利二区三区| 亚洲成av人片一区二区| 国产成人午夜片在线观看高清观看| 在线精品视频一区二区| 久久精品视频免费| 青椒成人免费视频| 在线观看免费成人| 中文字幕一区二区在线播放| 精品一区二区综合| 欧美精品在欧美一区二区少妇| 国产精品久久久久久久久搜平片 | 亚洲精品五月天| 激情图片小说一区| 91精品国产乱码久久蜜臀| 亚洲日本电影在线| 成人爽a毛片一区二区免费| 日韩一区二区三区在线观看| 亚洲制服欧美中文字幕中文字幕| 成人伦理片在线| 久久毛片高清国产| 韩国av一区二区| 日韩丝袜情趣美女图片| 强制捆绑调教一区二区| 欧美日韩精品欧美日韩精品 | 亚洲午夜免费视频| 99久久精品国产毛片| 国产午夜精品理论片a级大结局| 日韩高清欧美激情| 欧美丝袜自拍制服另类| 亚洲永久精品大片| 在线看日韩精品电影| 一区二区三区日韩精品| 在线观看一区日韩| 亚洲国产一区在线观看| 欧美日韩一区不卡| 日韩电影免费在线看| 欧美一级生活片| 精品一区二区在线看| 欧美精品一区二区三区很污很色的 | 久久se精品一区精品二区| 欧美色爱综合网| 亚洲1区2区3区4区| 91精品国产全国免费观看| 蜜桃av一区二区在线观看| 日韩欧美电影在线| 国产成人在线网站| 国产精品动漫网站| 欧美色倩网站大全免费| 青青草国产成人av片免费| 精品国产麻豆免费人成网站| 国精品**一区二区三区在线蜜桃| 久久伊人中文字幕| 99在线视频精品| 亚洲国产日韩在线一区模特| 欧美一区二区三区男人的天堂| 精品系列免费在线观看| 国产精品视频观看| 7777精品伊人久久久大香线蕉 | 黄色精品一二区| 国产精品网站在线| 欧美性受xxxx黑人xyx性爽| 日本免费在线视频不卡一不卡二| 久久久夜色精品亚洲| 91丝袜美女网| 美女mm1313爽爽久久久蜜臀| 一色屋精品亚洲香蕉网站| 欧美日韩免费不卡视频一区二区三区 | 国产激情视频一区二区在线观看| 中文字幕欧美日韩一区| 欧美天堂亚洲电影院在线播放| 激情图区综合网| 午夜欧美视频在线观看| 久久精子c满五个校花| 欧美三级电影网站| 国产不卡视频一区| 免费亚洲电影在线| 亚洲精品久久久蜜桃| 精品久久久三级丝袜| 欧美伊人久久久久久午夜久久久久| 精品在线视频一区| 午夜精品一区二区三区电影天堂| 国产日韩欧美精品一区| 欧美一级久久久久久久大片| 色94色欧美sute亚洲线路二 | 亚洲六月丁香色婷婷综合久久| 欧美第一区第二区| 欧美日韩精品久久久| 成人小视频在线| 久久99精品国产91久久来源 | 欧美一区二区三区免费大片| 91女人视频在线观看| 成人午夜av影视| 黑人巨大精品欧美一区| 日韩不卡一二三区| 亚洲大型综合色站| 亚洲自拍偷拍九九九| 一区免费观看视频| 国产精品福利影院| 国产精品伦理在线| 久久久99精品免费观看不卡| 日韩视频免费观看高清完整版在线观看 | 欧美日本在线视频| 欧美在线免费播放| 日本精品视频一区二区| 99久精品国产| 91麻豆国产福利在线观看| 99久久免费精品高清特色大片| 国产福利91精品一区| 九九九久久久精品| 狠狠色2019综合网| 国产一区啦啦啦在线观看| 国产真实乱对白精彩久久| 免费成人性网站| 国内精品写真在线观看 | 中文字幕精品在线不卡| 日本一区二区三区电影| 国产精品网站导航| 亚洲黄色性网站| 五月婷婷激情综合| 免费看精品久久片| 国产一区二区0| 99久久久久久99| 欧美午夜片在线观看| 欧美一区二区三区视频免费| 日韩一区二区三区精品视频| 精品成人佐山爱一区二区| 国产欧美一区二区三区在线看蜜臀| 国产精品乱子久久久久| 一区二区三区欧美| 日韩中文字幕一区二区三区| 久久成人羞羞网站| 成人黄色在线视频| 欧美日韩国产片| 久久亚洲综合色| 日韩久久一区二区| 日韩黄色一级片| www.欧美精品一二区| 欧美日韩美女一区二区| 日韩欧美在线不卡| 亚洲欧洲日韩一区二区三区| 亚洲亚洲精品在线观看| 久久精品国产久精国产爱| 99久久国产综合精品色伊| 欧美三级视频在线播放| 久久久国际精品| 亚洲一区二区欧美日韩 | 亚洲欧美成人一区二区三区| 手机精品视频在线观看| 国产电影精品久久禁18| 91成人在线精品| 久久综合久久综合久久综合| 亚洲精品一二三| 国产一区二区三区四区五区美女| av网站一区二区三区| 精品久久久久久综合日本欧美|