[Windows 窗体应用程序和 .NET 4.0]
我需要执行返回对象(类列表或简单类)的数据库访问方法。
我还需要在主线程进行初始化时打开响应式表单。
我需要在单独的线程上运行这些,以保持用户界面的响应,当然还需要能够将结果传递回主线程以进行 UI 更新。
我一直在阅读有关各种方法的书籍。
我了解我的工作可以通过以下方式完成:
- 背景地勤工作者
- 线程类
- 任务类
我应该潜入哪一个?
更新:使用建议的任务类,我使用以下方法获取跨线程安全错误:
private void BtnCheckClick(object sender, EventArgs e)
{
var itm = Task<JDEItemLotAvailability>.Factory.StartNew(() =>
Dal.GetLotAvailabilityF41021(
txtLot.Text,
cmbMcu.SelectedItem.ToString(),
cmbLocn.SelectedItem.ToString())
);
lblDescriptionValue.Text = itm.Result.Description;
lblItemCodeValue.Text = itm.Result.Code;
lblQuantityValue.Text = itm.Result.AvailableQuantity.ToString();
LotFocus(true);
}
在上面的例子中,我在 cmbMcu 控件而不是 txtLot 中得到了异常。