Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 4987|回复: 1

如何用 Multi-Thread 程式呼叫一般的 DLL(在各Thread中)

[复制链接]

该用户从未签到

发表于 2011-4-11 21:06:24 | 显示全部楼层 |阅读模式
大家好,
小弟最近在練習寫Multi-Thread的程式,其中主程式有用到A.dll, B.dll, C.dll,A又有用到B和C,B也有用到C,主程式有用到從A.dll呼叫的 甲、乙 兩個函式(兩者為完全獨立,且都沒有檔案存取的動作),原本的流程是:
主程式先進行甲,完畢之後再執行乙,即循序執行。
後來想改為:
主程式用BeginThread的方式開一條Thread執行乙,主程式自己執行甲,主程式執行完甲之後用WaitForThreadTerminate 等待乙的結束再進行後續的計算,但是這麼做程式會完全沒有回應而當在那邊。
後來把A.dll, B.dll, C.dll重新編譯一份叫做A2, B2,C2(並更改其內部所需的呼叫關係),主程式的乙函式由A2執行,執行速度果然有加快了一些,雖然說這麼做可以勉強堪用,但是我覺得這種變通的方法有點蠢…請問有沒有比較好的方法可以讓多執行緒程式呼叫並應用標準dll在各Thread中?

另,我的dll裡都是一堆function寫成的,應該是最普通的dll.......有人能提供一些Thread-Safe dll的參考嗎?

謝謝!

Best Regards,
ChenYuChih
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-4-15 12:44:38 | 显示全部楼层
自己回自己.....這兩天找到ㄧ個相關的網路文章
Multithreading - The Delphi Way.
w w w.eonclash.com/Tutorials/Multithreading/MartinHarvey1.1/ToC.html
講得很多,還在研究怎麼看懂中.......希望能對有Multi-Thread相關問題的同好們有所幫助並討論之!
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-1 17:20 , Processed in 0.068260 second(s), 9 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表