2010-06-21 87 views

回答

2

你有可能需要多線程。你可以從about.com

+0

thanx的鏈接...它的一個很好的開始.. – 2010-06-21 08:38:03

3

它使用線程完成。然而,這是一個高級課題,在開始使用線程之前,您最好先學習編程的基礎知識。

+0

+1爲「高級話題」。 OP可能甚至不想並行執行,但這似乎是被問到的。 – 2010-06-21 14:48:13

7

假設德爾福2009年或以上,並使用OmniThreadLibrary

uses OtlParallel; 

var 
    aRes: integer; 
    bRes: integer; 

begin 
    Parallel.Join(
    procedure begin 
     aRes := a(); 
    end, 
    procedure begin 
     bRes := b(); 
    end); 
end. 

或者對誰不喜歡匿名函數較真:

uses OtlParallel; 

var 
    aRes: integer; 
    bRes: integer; 

procedure CalcA; 
begin 
    aRes := a(); 
end; 

procedure CalcB; 
begin 
    bRes := b(); 
end; 

begin 
    Parallel.Join(CalcA, CalcB); 
end. 

(它的工作工作如果CalcA和CalcB是方法而不是簡單的程序,則相同。)

正如其他人所說,多線程領域ng編程充滿危險。確保你的兩個函數不修改相同的結構,不將數據輸出到同一目的地,最重要的是,他們沒有以任何方式使用GUI。

+0

你不是說**不**修改相同的結構? – afrazier 2010-06-21 12:44:23

+0

@afrazier:當然!感謝您的更正。 – gabr 2010-06-21 18:51:47