• CreateThread demo




    #include "stdafx.h"
    #include<windows.h>
    #include<strsafe.h>//win2003SDK必须安装 要不无此头文件。此文件是为了实现StringCchPrintf,StringCchLength。

    #define MAX_THREADS 5
    #define BUF_SIZE 255

    typedef struct _MyData{
    int val1;
    int val2;
    }MYDATA,*PMYDATA;

    DWORD WINAPI ThreadProc(LPVOID lpParam)
    {
      HANDLE hStdout;
      PMYDATA pData;
      TCHAR msgBuf[BUF_SIZE];
      size_t cchStringSize;
      DWORD dwChars;
      hStdout=GetStdHandle(STD_OUTPUT_HANDLE);
      if(hStdout==INVALID_HANDLE_VALUE)
      return 1;
      
      pData=(PMYDATA)lpParam;

      StringCchPrintf(msgBuf,BUF_SIZE,TEXT("Parameters=%d,%d "),pData->val1,pData->val2);
      //printf("%d,%d ",pData->val1,pData->val2);
      StringCchLength(msgBuf,BUF_SIZE,&cchStringSize);
      WriteConsole(hStdout,msgBuf,cchStringSize,&dwChars,NULL);


      HeapFree(GetProcessHeap(),0,pData);
      return 0;
    }
    void main()
    {
      PMYDATA pData;
      DWORD dwThreadId[MAX_THREADS];
      HANDLE hThread[MAX_THREADS];
      int i;

      for(i=0;i<MAX_THREADS;i++)
      {

        pData=(PMYDATA)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(MYDATA));
        if(pData==NULL)
          ExitProcess(2);

        pData->val1=i;
        pData->val2=i+100;
        hThread[i]=CreateThread(
                      NULL,//defaultsecurityattributes
                      0,//usedefaultstacksize
                      ThreadProc,//threadfunction
                      pData,//argumenttothreadfunction
                      0,//usedefaultcreationflags
                      &dwThreadId[i]);//returnsthethreadidentifier

        if(hThread[i]==NULL)
        {
          ExitProcess(i);
        }
      }

      WaitForMultipleObjects(MAX_THREADS,hThread,TRUE,INFINITE);

      for(i=0;i<MAX_THREADS;i++)
      {
        CloseHandle(hThread[i]);
      }

      system("pause");
    }

  • 相关阅读:
    jQuery函数继承 $.extend, $.fn.extend
    [原创]茗洋AaronYang的 jquery.myselect.js 我的一次前端突破[上]
    EasyUI 的 combotree 加载数据后折叠起来,并且只允许单击子节点的写法
    判断js数组包是否包含某个元素
    JS中 HTMLEncode和HTMLDecode
    Easyui datagrid 特殊处理,记录笔记
    easyui tab上面添加右键菜单
    第三方文本框 在div中显示预览,让指定节点不受外部css影响
    Easyui 让Window弹出居中
    C# txt格式记录时间,时间对比,决定是否更新代码记录Demo
  • 原文地址:https://www.cnblogs.com/duyy/p/3711252.html
Copyright © 2020-2023  润新知