首页 > 解决方案 > 我需要使用线程来调用一个窗口

问题描述

我正在开发一个基于 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();
    }

标签: c#

解决方案


在大多数(如果不是我在多种语言中看到的所有框架)中,UI 元素必须在 UI 线程上创建。从另一个线程创建它们会导致各种问题。

虽然你没有说你使用什么框架,但我敢打赌它也适用于你的框架。您的所有 UI 元素都必须从 UI 线程创建。

在另一个线程上工作,完成时发出信号,然后从 UI 线程创建 UI。


推荐阅读