c# winform调用dll子窗体后影响主线程怎么办?

Johnson2580 2020-06-28 06:51:10
在写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();
...全文
2743 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2020-06-30
  • 打赏
  • 举报
回复
引用 8 楼 Johnson2580 的回复:
引用 6 楼 以专业开发人员为伍 的回复:
很简单。把他们的东西先扔在一边,你们自己根据“正规的项目对接文档”的接口和功能描述,花上十分钟时间自己写一个测试窗口,返回“假”模拟逻辑,就行了。
看不懂,什么是测试窗口
这是说你别管对方,你就管你自己。你假装他存在,你假装毫无问题。换成博客园的洋词就是“打桩测试”,“Mock测试” 这个把,数据对接,功能对接可以。UI对接没办法假装了
Johnson2580 2020-06-30
  • 打赏
  • 举报
回复
引用 6 楼 以专业开发人员为伍 的回复:
很简单。把他们的东西先扔在一边,你们自己根据“正规的项目对接文档”的接口和功能描述,花上十分钟时间自己写一个测试窗口,返回“假”模拟逻辑,就行了。
看不懂,什么是测试窗口
  • 打赏
  • 举报
回复
工程管理的许多内容的核心,只有放到技术之外才能知行合一。就好像大街上一抓一大把的工程师,用谁都是用,关键不是技术而是不要被人“使坏”而在项目里埋下祸根。因此工程管理是要讲究“对接”,要放到高度上,先解决管理问题。而技术相对来说是次要的。
  • 打赏
  • 举报
回复
很简单。把他们的东西先扔在一边,你们自己根据“正规的项目对接文档”的接口和功能描述,花上十分钟时间自己写一个测试窗口,返回“假”模拟逻辑,就行了。
Johnson2580 2020-06-28
  • 打赏
  • 举报
回复
引用 2 楼 wanghui0380 的回复:
个人建议,他没写好的情况下。单独一个EXE封装 我们用一个按钮用process独立调用。 你非要嵌入也行,调用win32API,设置parent,设置定位,设置窗体风格
怎么调用win32把exe嵌入呢
Johnson2580 2020-06-28
  • 打赏
  • 举报
回复
引用 2 楼 wanghui0380 的回复:
个人建议,他没写好的情况下。单独一个EXE封装 我们用一个按钮用process独立调用。 你非要嵌入也行,调用win32API,设置parent,设置定位,设置窗体风格
话说exe怎么调用win32嵌入呢
Johnson2580 2020-06-28
  • 打赏
  • 举报
回复
想过调用exe,但是还需要调用它里面的函数,给他动态赋值,也想过动态写配置文件或者心跳包通信,总感觉太麻烦。话说
wanghui0380 2020-06-28
  • 打赏
  • 举报
回复
个人建议,他没写好的情况下。单独一个EXE封装 我们用一个按钮用process独立调用。 你非要嵌入也行,调用win32API,设置parent,设置定位,设置窗体风格
wanghui0380 2020-06-28
  • 打赏
  • 举报
回复
窗体俺们没办法。 我只能说,那边没写好,你就别用。 功能俺们可以用进程隔离,窗体?难道去折腾双进程离屏绘制?你那兄弟如果有玩双进程离屏绘制的能力,你这问题都不会问了,他早就解决了

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧