2011-04-18 5 views
2

からコントロール名を探す私はWPFの溶液中で使用している素敵な検索名コードスニペットを見つけました。非UIスレッド

私は、終了同期でオーディオファイルを再生している別のスレッドがあります。上記のコードを使用してuiスレッドのdepプロパティを設定したいが、クロススレッドエラーが発生し続ける。

はさえ、シンプルにしよう:

SoundFXPad selectedSoundFXPad = (SoundFXPad)m_parent.FindName("panelC" + numbervar); 

は、私が見てきた

他のすべてのスレッドセーフなWPFディスパッチャ-起動コードがすでにコントロールの名前を知っていると仮定私に同じエラーを与えます。上記のいずれかのコードをスレッドセーフな方法で使用して、名前を「見つけ出す」必要がある別のスレッドのUIコントロールに影響を与える方法はありますか?

ありがとうございました!

答えて

1

一般に、アプリケーションごとに1つのUIスレッドがあります(一般的には複数作成できますが、一般的ではありません)。したがって、ディスパッチャを見つけるためにコントロール名は必要ありません。これを試してみてください:

Application.Current.Dispatcher.Invoke(new Action(
    delegate { 
     // Put code that needs to run on the UI thread here 
    })); 
+0

優秀!それはトリックでした!最後に余分な右括弧を追加するだけで、今は喜びを感じることができます!早速のご返事ありがとうございます! – sunriser

関連する問題