Delphi中MIDAS線程模型
(1)Single
代表所產生的In-Process COM程序是一個單一線程的程序,一次只能接收一個client發出來的request,由於是循環的操作,所以不會有多任務同時進行的問題,你的COM程序不需要編寫多任
務處理的部分.
(2)Apartment
代表每一個Remote Data Module所產生的instance一次只能處理一個前台發出的request,可是如果同時創建多個In-Process COM程序,那麼每個COM程序都會有一個線程來處理,每個
instance所處理的數據是安全的,可是你必須防止一些共享變量的沖突.
(3)Free
該線程模式可以讓Remote Data Module產生的每個instance通過各自的線程處理每個前台發出的request,所以Remote Data Moudle本身必須采用多線程的程序寫法,你必須保護每
個instance所處理的數據區域不會互相沖突..當使用ADO數據集時,推薦使用Free模型.
(4)Both
與Free相同,除了所有對應前台界面的callback是連續的以外.
(5)Neutral
此種模式允許多個前台程序在同一個時間以不同的線程來調用Remote Data Module,不過COM對象必須確保不會有前台程序調用的沖突,你要確定每個線程在訪問全局變量及實例數據時,不
會發生任何沖突.這個模式只適用在COM+.