知道你的应用程序运行后在AppDomain中创建了一个新线程吗?

时间:2010-09-23 13:33:50

标签: c# multithreading appdomain

我想知道是否有任何方法可以获得一个事件(或其他内容),告诉您何时在您的appdomain(C#应用程序)上创建了新线程?基本思想是,当创建新线程时,我需要使用一些设置“初始化”线程。

我不想全身心地去做我的代码,因为我不知道将来会怎样。

2 个答案:

答案 0 :(得分:1)

创建一个线程静态变量,并在构造函数中初始化所需的任何内容。

class ThreadEnvironmentSettings
{
    [ThreadStatic]
    public static readonly ThreadEnvironmentSettings Settings = 
         new ThreadEnvironmentSettings();

    public ThreadEnvironmentSettings()
    {
        SetupJavaEnvironment();
    }

    public void EnsureSetup(){
        // Doesn't do anything but required to 'touch' the thread variable
    }
}

然后在调用任何需要已建立环境的方法之前:

ThreadEnvironmentSettigns.Settings.EnsureSetup();

答案 1 :(得分:0)

我假设java加载器在另一个进程上执行。 .NET代码只是为命令行指定了正确的参数 - 然后您可以将环境变量用于整个过程。

环境变量是整个过程的全局变量(即所有线程都可以访问它们,甚至是新创建的线程)。这是how在C#中设置变量。