Ответ 1
Боюсь, что ваш вопрос не очень ясен. Вы можете легко начать новый поток с помощью некоторого кода, используя анонимные методы в С# 2 и лямбда-выражения в С# 3:
Анонимный метод:
new Thread(delegate() {
getTenantReciept_UnitTableAdapter1.Fill(
rentalEaseDataSet1.GetTenantReciept_Unit);
}).Start();
new Thread(delegate() {
getTenantReciept_TenantNameTableAdapter1.Fill(
rentalEaseDataSet1.GetTenantReciept_TenantName);
}).Start();
Lambda выражение:
new Thread(() =>
getTenantReciept_UnitTableAdapter1.Fill(
rentalEaseDataSet1.GetTenantReciept_Unit)
).Start();
new Thread(() =>
getTenantReciept_TenantNameTableAdapter1.Fill(
rentalEaseDataSet1.GetTenantReciept_TenantName)
).Start();
Вы можете использовать синтаксис того же типа для Control.Invoke
, но это немного сложнее, поскольку это может принять любой делегат, поэтому вам нужно сообщить компилятору, какой тип вы используете, а не полагаться на неявное преобразование. Это, наверное, проще всего написать:
EventHandler eh = delegate
{
// Code
};
control.Invoke(eh);
или
EventHandler eh = (sender, args) =>
{
// Code
};
control.Invoke(eh);
Как примечание, ваши имена действительно так долго? Можете ли вы сократить их, чтобы получить более читаемый код?