我正在开发基于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();
}
答案 0 :(得分:1)
在大多数情况下,即使不是我在许多种语言中看到的所有框架,UI元素也必须在UI线程上创建。从另一个线程创建它们将导致各种问题。
尽管您没有说使用什么框架,但我敢打赌它也适用于您的框架。您的所有UI元素都必须从UI线程创建。
在另一个线程上工作,完成时发出信号,然后从UI线程创建UI。