Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为单独的线程(.NET/C#)使用不同的.config文件_C#_Multithreading_Config - Fatal编程技术网

为单独的线程(.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文件