如何将环境变量注入新启动的线程的上下文中?

时间:2015-10-20 11:53:55

标签: c#

我想将一个环境变量注入一个新创建的thead,以便在线程内部启动的进程可以看到这个变量。

直到现在它不起作用,我试试了这个

var startInfo = new ProcessStartInfo();
startInfo.EnvironmentVariables["foo"] = "bar";
applicationThread = new Thread(new ThreadStart(scanner.start));
applicationThread.Start();

但是我的线程内部开始的进程看不到环境变量" foo"

由于

1 个答案:

答案 0 :(得分:0)

Thread.Start有一个带Object参数的重载。你可以这样传递你的变量。

从MSDN(Thread.Start(Object)方法文档):

  

使操作系统更改当前状态   实例到ThreadState.Running,并可选择提供一个对象   包含线程执行的方法使用的数据。

您应该能够像这样使用它:

applicationThread.Start(startInfo.EnvironmentVariables["foo"]);