为单独的线程(.NET/C#)使用不同的.config文件
这可能吗 我正在使用此调用实例化新线程:为单独的线程(.NET/C#)使用不同的.config文件,c#,multithreading,config,C#,Multithreading,Config,这可能吗 我正在使用此调用实例化新线程: this.RunningThread = new Thread(new ParameterizedThreadStart(this.Run)); 或者,我想将另一个.config的位置传递给它。是否可能,如果可能,如何实现 谢谢大家! 只需传递一个代理: private void Run(string configPath) { } ... Thread thread = new Thread(()=> this.Run("foo.confi
this.RunningThread = new Thread(new ParameterizedThreadStart(this.Run));
或者,我想将另一个.config的位置传递给它。是否可能,如果可能,如何实现
谢谢大家! 只需传递一个代理:
private void Run(string configPath)
{
}
...
Thread thread = new Thread(()=> this.Run("foo.config")) ;
thread.Start();
您可以尝试使用传递配置文件路径并返回
我不认为有任何方法可以在不同的线程上拥有或返回不同的值,但是您可以保留对该方法返回的配置对象的引用,并在代码中使用它。否,.config文件与AppDomain关联,而不是与线程关联。在默认CLR主机上,主appdomain已硬烘焙到app.exe.config文件,您无法更改它。新的AppDomain可以通过AppDomainSetup.ConfigurationFile属性使用自己的.config文件进行配置
请注意将数据从一个appdomain序列化到另一个appdomain所需的工作,这是只有在您确实对隔离代码感兴趣时才想做的事情。无论您想这样做的原因是什么,肯定有比AppDomain更好的方法来实现您的目标。您的意思是线程中执行的代码没有更改,但仍然使用不同的.config?或者您可以将配置文件的路径传递给线程上执行的代码吗?我想将不同的配置文件传递给仅在新线程上执行的代码。主线程应该使用applicationsorry附带的原始.config,我不是想将其作为参数传递,而是让不同的线程自动使用不同的.config文件