現在,我有一個窗口應用程序(C#),吐出長時間運行的報告。每份報告都會從UI中獲取一些信息來約束報告。當然,報表創建發生在後臺線程上,我需要正確調用各種控件來獲取選定索引和值等內容。但我不認爲我的代碼看起來不錯,並希望有更好的模式。因爲有這麼多要求的控制,我對於將返回各類型進行泛型委託:清理調用模式?
private delegate string StringDelegate();
private delegate int IntDelegate();
再往下,有這些代表的不同實例:
private StringDelegate GetYearSelectedItem = new StringDelegate(cmbYearAsync);
YearAsync看起來是這樣的:
private string cmbYearAsync() {
return cmbYear.SelectedItem.ToString();
}
最後,在代碼是在後臺線程,這是我得到的值:
cmbYear.Invoke(GetCmbYearSelectedItem);
是否有更簡單的方法從單獨的線程獲取這些值?