zoukankan      html  css  js  c++  java
  • delphi多线程的入口函数也可以是一个过程

    多线程其实非常简单,DELPHI有多线程的类,你添加即可使用,但是我喜欢自己调用API,方法如下:
      定义一个函数或者过程,这个函数就是线程要执行的内容,然后调用API就可以不断创建线程,每个线程都单独的执行那个函数,执行完毕线程就自动关闭,下面是我程序里面的部分代码:

    {下面这个就是线程过程,我的线程传递一个参数,建立的SOCKET}
    procedure ClientThread(var sock:TSOCKET); stdcall;
    var ……;
    begin
    ……
    end;

    {下面是主程序建立服务,等待连接,连接后调用线程进行处理的代码}
    repeat
    iAddrSize := sizeof(client);
    sClient := accept(sListen, @client, @iAddrSize);
    if sClient=INVALID_SOCKET then
    begin
        SocketErrorMsg(sClient, 'accept() fail');
        break;
    end;
    writeln('Accepted client: ',inet_ntoa(client.sin_addr),':',ntohs(client.sin_port),' sock=',sClient);
    hThread := CreateThread(nil, $1000, @ClientThread, @sClient, 0, dwThreadId);
    if hThread=0 then
    begin
        writeln('CreateThread() fail:',GetLastError);
        break;
    end;
    CloseHandle(hThread);
    until false;

  • 相关阅读:
    LeetCode Single Number
    Leetcode Populating Next Right Pointers in Each Node
    LeetCode Permutations
    Leetcode Sum Root to Leaf Numbers
    LeetCode Candy
    LeetCode Sort List
    LeetCode Remove Duplicates from Sorted List II
    LeetCode Remove Duplicates from Sorted List
    spring MVC HandlerInterceptorAdapter
    yum
  • 原文地址:https://www.cnblogs.com/chenbg2001/p/1607954.html
Copyright © 2011-2022 走看看