我已经创建了一个Windows应用程序(使用c#.net)来调试我们部门的比赛。 在这许多用户使用相同的数据库来选择问题列表并单独更新其各自ID中的标记。 是否需要在更新数据库中的标记时使用线程概念。 any1请帮帮我.. 谢谢你... ...
答案 0 :(得分:3)
Mutil-Threading
或多个线程用于您希望一次执行多个任务或同时执行某些任务的场景。您应该考虑您的场景以及您的场景中可能使用的多个线程。如果您认为某些任务可以划分为两个单独的任务并且可以并行运行,则可以使用多线程来提高性能。同样,如果您认为某些任务很繁重且需要花费大量时间,您可以将该任务移至Background Thread
并使用主线程并行处理其他任务。这一切都取决于你的情况。
现在进入你的场景,如果它是一个Windows窗体应用程序,那么很可能一次只有一个这个应用程序的用户将通过UI进行交互。如果这个假设是正确的,我不这么认为你需要多线程。如果用户通过UI进行一些输入并且他点击结尾处的保存按钮以在DB中保存信息,则不需要多线程,单个UI线程就足以完成此操作
答案 1 :(得分:0)
不需要这个。每个用户将使用数据库连接池的连接,并且这些连接同时工作,不需要并行编程。
答案 2 :(得分:0)
如果从不同的线程更新数据库,它将不会损坏。这与常规C#不同,您需要应用锁来保护对象。您可能需要使用事务来确保数据库更新不会在更高级别上相互干扰。非常简单地说,如果您在多个表中编辑数据库,或者数据库更改取决于数据库内容(例如从客户添加订单),事务会阻止您为已删除的客户添加订单,事务会确保数据库保持一致
答案 3 :(得分:0)
您需要对任何数据库交互使用非UI线程,否则UI可能会无响应。例如。如果你从UI线程执行一个长查询(或者你的连接被中断,或者数据库被大量使用或任何可能出错的东西 - 都会出错),UI线程会被阻塞,直到收到完整的响应。
如果您有多个用户,可能会更新数据库中的相同数据,您可能需要引入事务以确保正确的控制和数据流 - ACID。