複数のメソッドを同時に呼び出す方法はありますか?ロード時に信じられないほどの量のデータをロードするwinformsアプリがあります。
private void form1_Load(object sender, EventArgs e)
{
LoadValues1();
LoadValues2();
LoadValues3();
LoadValues4();
LoadValues5();
LoadValues6();
LoadValues7();
LoadValues8();
}
これらのメソッドはデータを取得し、DevExpress LookUpEdits(Windowsのドロップダウンリストと同様)にデータを入力するため、すべて次のようになります。
DBContext dbContext = new DBContext();
ObservableCollection<string> values1 =
new ObservableCollection<string>((from i in dbContext.Items
where i.Value1 != null
&& i.Value1.Length > 0
orderby i.Value1
select i.Value1).Distinct());
lookupValues1.Properties.DataSource = descModelYear;
DevExpress.XtraEditors.Controls.LookUpColumnInfoCollection colInfo = lookupValues1.Properties.Columns;
colInfo.Clear();
colInfo.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("Column"));
colInfo[0].Caption = "Values 1";
これらの方法のいくつかは完了するのに時間がかかりますが、どれも相互に依存していないので、すべてを同時に実行できると思いました。
Task.Factory.StartNew(() => LoadValues1());
Task.Factory.StartNew(() => LoadValues2());
etc.
しかし、2番目のタスクを実行すると、作成されたスレッドとは異なるスレッドからコントロールにアクセスできないというエラーが発生し続けます。
どんな助けでも大歓迎です!