c# - 我需要使用线程来调用一个窗口
问题描述
我正在开发一个基于 WPF 的系统。UI 需要让用户编译和处理。里面有一个函数,可以执行用户编译所以如果用户需要导入第三方dll我无法控制用户我使用一个线程来实现这个功能。
但是现在有个问题,如果用户调用dll里面的窗口,窗口就会死机。
主要的
int main()
{
Thread th = new Thread(thread);
th.Start();
}
void thread()
{
LoadLibrary("C:\\123\windows.dll");
StartTest(dll_windows);
}
动态链接库
public static dll_windows()
{
ShowWindow();
}
解决方案
在大多数(如果不是我在多种语言中看到的所有框架)中,UI 元素必须在 UI 线程上创建。从另一个线程创建它们会导致各种问题。
虽然你没有说你使用什么框架,但我敢打赌它也适用于你的框架。您的所有 UI 元素都必须从 UI 线程创建。
在另一个线程上工作,完成时发出信号,然后从 UI 线程创建 UI。
推荐阅读
- react-native - 如何从普通导航器堆栈中打开模式?
- reactjs - Centos 6 的 Electron/nw.js 的 Web 运行时替代品?
- java - 遍历数组
- wordpress - 如何删除 WordPress 菜单栏表单站点?
- reactjs - 顶级函数 - TypeError: Object(...) is not a function compose
- c# - 关闭阴影属性生成
- reactjs - React:频繁更新共享状态
- jquery - jQuery - 使用 AJAX 动态加载表单并提交
- php - 如何在php中将大量数据输入到mysql表中?
- c# - 在 C# 中将列表序列化为 JSON 会在引号前创建反斜杠