恐怕你的问题不是很清楚。您可以使用 C# 2 中的匿名方法和 C# 3 中的 lambda 表达式轻松地使用一些代码启动一个新线程:
匿名方法:
new Thread(delegate() {
getTenantReciept_UnitTableAdapter1.Fill(
rentalEaseDataSet1.GetTenantReciept_Unit);
}).Start();
new Thread(delegate() {
getTenantReciept_TenantNameTableAdapter1.Fill(
rentalEaseDataSet1.GetTenantReciept_TenantName);
}).Start();
拉姆达表达式:
new Thread(() =>
getTenantReciept_UnitTableAdapter1.Fill(
rentalEaseDataSet1.GetTenantReciept_Unit)
).Start();
new Thread(() =>
getTenantReciept_TenantNameTableAdapter1.Fill(
rentalEaseDataSet1.GetTenantReciept_TenantName)
).Start();
您可以使用相同类型的语法 for Control.Invoke
,但它可以接受任何委托,因此稍微复杂一些 - 因此您需要告诉编译器您正在使用哪种类型,而不是依赖于隐式转换。这可能是最容易写的:
EventHandler eh = delegate
{
// Code
};
control.Invoke(eh);
或者
EventHandler eh = (sender, args) =>
{
// Code
};
control.Invoke(eh);
作为旁注,你的名字真的那么长吗?你能缩短它们以获得更易读的代码吗?