2011-02-26 81 views
2

這可能嗎?爲不同的線程使用不同的.config文件(.NET/C#)

我使用這個調用來實例化新的線程:

this.RunningThread = new Thread(new ParameterizedThreadStart(this.Run)); 

可選,我想不同的.config的位置傳遞給它。如果有的話,有可能如何?

謝謝!

+0

你是說在線程中執行的代碼沒有改變,但仍然使用不同的.config?或者你可以將配置文件的路徑傳遞給線程上執行的代碼嗎? – rene 2011-02-26 21:24:11

+0

我想將不同的配置文件傳遞給僅在新線程上執行的代碼。主線程應該使用與應用程序 – Igorek 2011-02-26 21:37:55

回答

2

不,一個.config文件與一個AppDomain關聯,而不是一個線程。在默認的CLR主機上,主appdomain被硬件烘焙到app.exe.config文件,您無法更改它。新的AppDomain可以通過AppDomainSetup.ConfigurationFile屬性使用自己的.config文件進行配置。

要小心將數據從一個appdomain序列化到另一個appdomain所需的努力,如果您真的對隔離代碼感興趣,這是您只想做的事情。無論你想要做什麼的原因,肯定有一個比AppDomain更好的方式來實現你的目標。

0

只是傳遞一個委託:

private void Run(string configPath) 
{ 

} 

... 
Thread thread = new Thread(()=> this.Run("foo.config")) ; 
thread.Start(); 
+0

一起提供的原始.config。我並不想將它作爲參數傳遞,但我的意思是讓不同的線程自動消耗不同的.config文件 – Igorek 2011-02-26 22:05:11