3
我正在使用WinForms我面臨以下問題。我應該在具體時間段內動態創建並添加表單兩個選項卡。異步添加窗體上的組件
這是主要佈局
IMainGeneralReportForm mainGeneralReportLayoutForm =
ObjectFactory.GetOrCreateView<IMainGeneralReportForm>();
我嘗試添加我的元素在接下來的方式:
ObjectFactory.ShowView<IGeneralReportSimpleView>();
ObjectFactory.ShowView<IGeneralReportAdvancedSearchView>();
方法ShowView
完美的作品。但是當我一個接一個地調用方法時,程序的執行速度有點慢。所以我決定在下一步使用多線程:
MainGeneralReportForm generalReportForm = mainGeneralReportLayoutForm as MainGeneralReportForm
generalReportForm.Invoke(new SimpleViewDelegate(() =>
{
return ObjectFactory.ShowView<IGeneralReportSimpleView>()
}));
generalReportForm.Invoke(new AdvancedViewDelegate(() =>
{
return ObjectFactory.ShowView<IGeneralReportAdvancedSearchView>()
}));
private delegate IGeneralReportSimpleView SimpleViewDelegate();
private delegate IGeneralReportAdvancedSearchView AdvancedViewDelegate();
這些方法的工作原理是一樣的。你能給我一個建議如何解決這個問題與多線程?
用戶界面和工作線程不能很好地協同工作。您需要找出哪些花費很長時間並將其委派給工作線程。你可以爲此使用TPL。 UI應該只能在UI線程中訪問。 –