在寫winform程式時需要用到一個別人寫的dll表單,由于dll還未完善經常報錯,影響我自己的主執行緒。尤其是dll報錯時導致我的程式死掉,try catch也沒辦法解決。試了很多辦法還是不行,想到將dll在子執行緒里運行,但是我需要把dll表單放在我的表單里,那就需要invoke,這樣一來還是在主執行緒運行了。呼叫dll代碼如下,求大神給個好辦法~
form1是dll里的子表單,表單初始化會開啟一些運算執行緒,panel1是我主表單的一個panel
LCD = new Form1();
LCD.TopLevel = false;
panel1.Controls.Add(LCD);
LCD.Dock = DockStyle.Fill;
LCD.Show();
uj5u.com熱心網友回復:
表單俺們沒辦法。我只能說,那邊沒寫好,你就別用。
功能俺們可以用行程隔離,表單?難道去折騰雙行程離屏繪制?你那兄弟如果有玩雙行程離屏繪制的能力,你這問題都不會問了,他早就解決了
uj5u.com熱心網友回復:
個人建議,他沒寫好的情況下。單獨一個EXE封裝我們用一個按鈕用process獨立呼叫。
你非要嵌入也行,呼叫win32API,設定parent,設定定位,設定表單風格
uj5u.com熱心網友回復:
想過呼叫exe,但是還需要呼叫它里面的函式,給他動態賦值,也想過動態寫組態檔或者心跳包通信,總感覺太麻煩。話說uj5u.com熱心網友回復:
話說exe怎么呼叫win32嵌入呢uj5u.com熱心網友回復:
怎么呼叫win32把exe嵌入呢uj5u.com熱心網友回復:
很簡單。把他們的東西先扔在一邊,你們自己根據“正規的專案對接檔案”的介面和功能描述,花上十分鐘時間自己寫一個測驗視窗,回傳“假”模擬邏輯,就行了。uj5u.com熱心網友回復:
工程管理的許多內容的核心,只有放到技術之外才能知行合一。就好像大街上一抓一大把的工程師,用誰都是用,關鍵不是技術而是不要被人“使壞”而在專案里埋下禍根。因此工程管理是要講究“對接”,要放到高度上,先解決管理問題。而技術相對來說是次要的。uj5u.com熱心網友回復:
看不懂,什么是測驗視窗uj5u.com熱心網友回復:
這是說你別管對方,你就管你自己。你假裝他存在,你假裝毫無問題。換成博客園的洋詞就是“打樁測驗”,“Mock測驗”
這個把,資料對接,功能對接可以。UI對接沒辦法假裝了
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/28037.html
標籤:C#
