Visual C#多线程UserControl DLL

时间:2015-04-08 12:08:09

标签: c# dll user-controls

我想用C#创建一个多线程的Usercontrol。 这可以使用VisualStudio还是只能在C ++中使用?背后的想法是启动控件的几个实例,以便每个实例都有自己的内存段,并且与其他实例无关...

背景
我想在SAP中使用该控件。在SAP中,我能够创建多个SAP GUI实例。每个SAP GUI实例都包含我自己的(ActiveX)控件。这个例子是秒表。目前我在第一个实例中启动秒表,所有其他实例都是同步的。到目前为止这很好 - 但现在我想将UserControl(显然是一个STA DLL)更改为MTA DLL,以便控件的每个实例都有自己的时间...我是否有机会将其编译为一个MTA DLL或者这不是解决问题(不改变架构)?还是我完全错了?

假设:秒表是基于GDI的...我看到的实际错误来自GDI +中的代码,确保同一个Graphics对象不能在多个线程中使用。但是如何在多个线程中使用图形对象?

1 个答案:

答案 0 :(得分:1)

根据您提供的信息,是的,您可以,但对于内存段,其每个进程不在进程内控制,对于32位应用程序,最大为2GB,可以扩展到3GB但不推荐。

如果你想要独立的内存,那么你必须创建多个可执行文件,其中每个exe都有自己的地址空间。

所以你可以做的是创建一个具有usercontrol或form的C#应用​​程序并添加你的逻辑,这将被编译成一个单独的exe,然后创建另一个C#应用程序来启动第一个C#应用程序的进程。