4

ローカライズされた、多言語インターフェースを備えたアプリケーションを開発しています。これを行うには、winform の localazible 機能と言語文字列リソースを使用します。これまでのところ、それは完璧に機能します。

問題は、バックグラウンド ワーカー プロセス内でローカライズされた文字列を取得しようとするときに発生します。現在の UI カルチャを使用することはできませんが、代わりにデフォルトを使用できます。ResourceManager の GetString メソッドは、CurrentUICulture による文字列ではなく、既定の言語文字列を返します。メインスレッドで完全に機能することに注意してください。問題はバックグラウンドワーカー内にあります。

では、バックグラウンド ワーカー スレッドの言語リソース ファイルから、現在の UI カルチャに基づいてローカライズされた文字列を取得するにはどうすればよいでしょうか。

環境: .net4、c#、Visual Studio 2010。

前もって感謝します!

4

2 に答える 2

4

バックグラウンドスレッドのThread.CurrentCultureプロパティとThread.CurrentUICultureプロパティを、フォアグラウンドスレッドのプロパティと一致するように設定する必要があります。これは、バックグラウンドスレッドで実行されるコードの開始時に実行する必要があります。

于 2011-04-14T20:03:03.130 に答える