我真的不喜欢必须创建委托来赋予线程功能。如果我当前正在使用方法 A 来工作,但后来意识到在线程中运行会更好,那么现在我必须创建一个委托和另一个方法来实际运行线程。所以现在我有方法 A 的启动线程,然后通过委托给方法 B 来工作。
我的问题是: *我可以将功能包装在线程声明本身中吗?*
就像是
System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(
new delegate()
{
SqlConnection Connection = Helpers.ConnectionHelper.CreateConnection();
SqlCommand cmd = new SqlCommand("MarkNotificationRead", Connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@id", SqlDbType.BigInt).Value = this.id;
Connection.Open();
try
{
cmd.ExecuteNonQuery();
}
catch
{
}
Connection.Close();
});
我以前在某个地方看到过类似的事情,但再也找不到这个例子了。