Silverlight 5ブラウザアプリケーションがあります。UI以外のスレッドでUserControlを作成するSilverlight 5ブラウザアプリケーション
私は、このクラスのインスタンスを複数作成し、実行時にメソッドのLoadSubControlsを呼び出す必要がクラス
public class ActivityControl:UserControl {
public void LoadSubControls() {
//Creates Other UserControls, does calculations and is very slow..No refactoring..
}
}
があります。
public class BasicContainer:UserControl {
public void CreateMultipleActivityControls() {
for (int i = 0; i < 1000; i++) {
ActivityControl c = new ActivityControl(); ====> I need to call this in a different thread but causes Invalid Cross Thread Exception
c.LoadSubControls();
}
}
}
無効なクロススレッド例外を回避するために複数のUIスレッドを作成する方法はありますか?
パフォーマンスの理由から、またメソッド呼び出しが非常に遅くUIがフリーズするため、マルチスレッドが必要です。
SilverlightでメソッドSetSyncronizationContext
([SecurityCritical])を呼び出す方法はありますか?
guiにすべてのコントロールが直接表示されていますか?あなたはそれらを怠け者にすることができますか? –
"LoadSubControls"メソッドでは、画像を生成するためにサブコントロールのMeasureLayoutを整理します。私はInitializeComponent()を実行すべきではないという意味ですか? – George
私はまたあなたのメソッドを小さな塊に分割して、実際にコントロールをUIに配置する必要があるたびにUIスレッドにコールバックするだけです。 –