我需要使用线程来调用窗口

时间:2019-03-27 06:15:22

标签: c#

我正在开发基于WPF的系统。 用户界面需要让用户进行组合和处理。 里面有一个功能,可以执行用户编译 因此,如果用户需要导入第三方dll,我将无法控制用户 我使用线程来实现此功能。

但是现在有一个问题,如果用户在dll中调用该窗口,则该窗口将冻结。

主要

    int main()
    {
        Thread th = new Thread(thread);
        th.Start();
    }

    void thread()
    {
        LoadLibrary("C:\\123\windows.dll");
        StartTest(dll_windows);
    }

DLL

    public static dll_windows()
    {
        ShowWindow();
    }

1 个答案:

答案 0 :(得分:1)

在大多数情况下,即使不是我在许多种语言中看到的所有框架,UI元素也必须在UI线程上创建。从另一个线程创建它们将导致各种问题。

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

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