1
2
首先,不应该尝试设置线程的优先级。一般来说,这是一个坏主意,因为线程优先级提升(在这种情况下是解除提升)将被操作系统覆盖,以防这些线程被耗尽(在解除线程优先级的情况下)或占用太多时间(在提升的情况下)。 也就是说,在.net中,很容易在一个小时内进行数据库调用。例如, SqlCommand class has a number of methods 在异步调用中使用begin*模式,而.net中的大多数其他数据库提供程序都遵循这种模式。 也就是说,如果跟踪api允许,那么应该使用这些机制之一启动数据库操作,然后在提供给异步机制的回调中完成。 如果你是 不 使用允许异步调用的提供程序,则可能应该使用 ThreadPool class (特别是 QueueUserWorkItem )将异步操作排队(这假定跟踪操作不是lenghty)。 如果您使用的是.net 4.0,那么您甚至可以查看 System.Threading.Tasks namespace 执行类似线程池的操作(有一个更好的api,它允许多个池、取消和线程池没有的其他特性)。 应该注意的是,您应该获得执行操作所需的所有相关信息 之前 你开始吧。例如,您希望获取操作的日期/时间 之前 您可以进行异步调用,因为您希望该值反映您正在跟踪的操作,而不是跟踪本身。 |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
Dansih · .Net核心自定义身份验证方案 2 年前 |
lolorekkk · 面板插入。NET WinForm 2 年前 |