delphi能否以多執行緒的方式呼叫乙個過程

2025-07-06 20:30:07 字數 2317 閱讀 6887

1樓:網友

createthread(nil,0,@showimage(picn,number),nil,0,id);

第三個引數應該是函式指標 也就是,@showimage第四個引數是這個函式所要用的引數的指標,所以你這裡最好定義成乙個結構體。

呼叫同乙個過程是可以的,但是如果你這個過程對介面進行了操作的,那麼就需要同步。

如果你對windows底層比較瞭解,可以這個樣用。

不然還是繼承delphi的tthread來弄吧。

方便控制一些。

2樓:網友

createthread(nil,0,@showimage,nil,0,id);

多執行緒最好繼承tthread實現,那樣較好控制。

delphi多執行緒互斥,用多執行緒怎麼解決同一時間內呼叫同一函式

3樓:守意如城

你對多執行緒的理解可能有偏,多執行緒是允許在同一時間內呼叫同一函式的。

在多執行緒程式設計中要注意解決的問題,是防止對全域性物件或變數的同時訪問。主要有三種策略,第一,加鎖物件;

第二,使用臨界區。

第三,使用多讀排它寫的同步機制。

詳細說明,delphi的幫助文件中都有。

delphi求乙個多執行緒呼叫乙個函式的**簡單的就ok

4樓:網友

這個要看你這個函式是幹什麼的,如果不涉及介面vcl或資料操作等需要同步的事情,那麼多個執行緒呼叫同一函式跟平常呼叫乙個函式一樣,沒什麼特別的地方,反之,則需要注意每個執行緒之間的同步問題。

j**a如何在多執行緒中再設定乙個多執行緒?

5樓:好程式設計師

用timer,如果是要工程一啟動就開啟這個timer的話 ,可以把timer配置到xml檔案中。

delphi怎樣實現多執行緒

6樓:陽光上的橋

多執行緒其實非常簡單,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

beginsocketerrormsg(sclient, 'accept() fail');

break;

end;writeln('accepted client: ',inet_ntoa(,':',ntohs(,' sock=',sclient);

hthread := createthread(nil, $1000, @clientthread, @sclient, 0, dwthreadid);

if hthread=0 then

beginwriteln('createthread() fail:',getlasterror);

break;

end;closehandle(hthread);

until false;

delphi能不能同時執行多個事件?

7樓:網友

tthread 使用這個多執行緒類。

execute 過程下面放要執行的**。

typeth = class(tthread)

protected

procedure execute; override;

end;implementation

procedure ;

beginfreeonterminate := true; //這個引數可以設定執行完畢後自動釋放例項。

---執行**---end;

關於例項建立。

varmyth: th;

beginmyth := ; // 預設的create方法中的引數 false 表示立即執行 true 表示先行掛起,後呼叫resume來喚醒。

end;

VC 6 0多執行緒的問題

有很多方法可以實現 乙個接乙個 的依次執行。其中有乙個比較談祥簡單的方法就是設定 global variable 變數來控制。int idglobal 執行緒函式fnthread 呼叫執行緒的函式fnmyfunc int id while id idgloal do nothing do somethi...

多執行緒問題 為什麼無法呼叫Thread類的start方法

我來幫你解決把。雖然我不明白你為什麼說無法呼叫thread類的start方法。首先,你要理解多執行緒實現的2種方法。1.繼承thread類並覆寫run方法 2.實現runnable介面並覆寫run方法。其中這兩種方法中在實際開發和應用中只有第二種是規範和常見的 原因是thread類也是實現了runn...

關於多執行緒對mysql資料庫插入操作的疑問

資料庫有自己的連線鎖機制,如果是針對同一臺機器使用同一個介面進行插入的話多執行緒和單執行緒是一樣的。除非你有好幾臺資料庫伺服器,這樣再使用多執行緒來進行上面的工作的話效率才會明顯提高。j a多執行緒同時插入mysql中的一張表,是否可行?資料庫有自己的連線鎖機制,如果是針對同一臺機器使用同一個介面進...