最近在用VB開發一個專案的時候,我遇到這樣的一個問題,我要寫一段代碼,這段代碼按模塊可以切成3個部分。這三個部分使用2個變數串起來:
開始的時候代碼模塊1啪啪啪開始執行,執行完了之后變數1為true,同時他自己開始了新的一輪回圈;
代碼模塊2一直在等待變數1為true,當變數1為true時,代碼模塊2也開始啪啪啪執行,開始執行的時候將變數1變false。執行完之后變數2為TRUE;
代碼模塊3一直在等待變數2為true,當變數2為true時,代碼模塊3也開始啪啪啪執行,開始執行的時候將變數2變false。執行完之后接著等待變數2為true,等待下一輪的回圈;
這三個部分代碼在執行的時候,互不影響的單獨獨立執行。只有在完成一輪執行的時候,才檢測有關聯的變數是否為ON,方便下一輪的執行(比如代碼2在執行完一輪之后,檢測變數1為true,如果為true則開始新一輪的執行)
現在的問題是,如果我把三個代碼塊串起來,則如果代碼1還沒有執行完的時候(我估算代碼1可能要執行1s,因為要用到N多延時),那么代碼2就不能干活。如果能夠讓代碼1,2,3同時執行的話,那么只需要在各個代碼模塊干完活之后,檢測一下是不是可以開始新一輪作業,這樣整機效率就高了很多了!!
問題來了:怎么樣做,可以讓3個代碼模塊獨立干活呢?
uj5u.com熱心網友回復:
既然是代碼自己改變狀態,用事件是最好的了。沒必要輪詢。
話說你為什么不聽我的呢。
uj5u.com熱心網友回復:
用類模塊,定義事件,需要的時候raiseeventuj5u.com熱心網友回復:
樓主給分和結帖率都很低,加油啊uj5u.com熱心網友回復:
是把三個代碼段封裝到類模塊里邊去嗎??
作為一個程式猿,我知道我不能哭,但我真的快哭了!!
uj5u.com熱心網友回復:
注冊了很久,不過最近才過來發帖。。。
窮得很,就剩這點口糧了,版主您就別嫌分少了,。。
您老人家能不能行行好,給點啥具體的建議撒嘛。。。
我都快哭了!!
uj5u.com熱心網友回復:
能給點具體的例子嗎,網上的例子大多沒注釋。給個鏈接也行呀。。
uj5u.com熱心網友回復:
給自己 PostMessage 來觸發后一個任務。uj5u.com熱心網友回復:
要獨立運行三個部分的話,只能多執行緒uj5u.com熱心網友回復:
樓主給分和結帖率都很低,加油啊uj5u.com熱心網友回復:
寫個類怎么就哭了呢?
uj5u.com熱心網友回復:
...(我估算代碼1可能要執行1s,因為要用到N多延時),那么代碼2就不能干活。如果能夠讓代碼1,2,3同時執行的話,那么只需要在各個代碼模塊干完活之后,檢測一下是不是可以開始新一輪作業,這樣整機效率就高了很多了!!
問題來了:怎么樣做,可以讓3個代碼模塊獨立干活呢?
很簡單, 好多用VB寫代碼的人思路老是想著"大一統", 總想畢其功于一役, 用一個老大的程式干完所有作業.
但是實際上這是事倍功半的做法. 因為代碼量一上去, 不但內部關系復雜了, 故障率高了, 維護也難了.
更何況VB還不支持多執行緒.
所以挺簡單的辦法: 把多個需要"獨立"的任務單獨撰寫, 用一個中央調度程式負責所有狀態量的收集和調配.
比如你這個程式就可以拆成4個小程式, 三個任務各一個, 中控再一個. 分別撰寫, 單獨除錯.
比起傻大粗笨的單個程式靈活不知道多少.
唯一多出來的一點點也就是相互通訊罷了.
想簡單點的用DDE, 想著以后做大成為"企業版"的, 可以用資料庫, 想著再牛逼點可以分布運行的就用tcp, 反正條條大擼捅羅媽.
uj5u.com熱心網友回復:
用事件比較好。直接拋出去。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/134066.html
標籤:VB基礎類
上一篇:分享個文本檔案操作的模塊
