我想将一个环境变量注入一个新创建的thead,以便在线程内部启动的进程可以看到这个变量。
直到现在它不起作用,我试试了这个
var startInfo = new ProcessStartInfo();
startInfo.EnvironmentVariables["foo"] = "bar";
applicationThread = new Thread(new ThreadStart(scanner.start));
applicationThread.Start();
但是我的线程内部开始的进程看不到环境变量" foo"
由于
答案 0 :(得分:0)
Thread.Start
有一个带Object
参数的重载。你可以这样传递你的变量。
从MSDN(Thread.Start(Object)
方法文档):
使操作系统更改当前状态 实例到ThreadState.Running,并可选择提供一个对象 包含线程执行的方法使用的数据。
您应该能够像这样使用它:
applicationThread.Start(startInfo.EnvironmentVariables["foo"]);