1

我已经创建了一个windows应用程序(使用c#.net)进行我们部门的调试比赛。 在这许多用户使用相同的数据库来选择问题的列表,并更新在他们各自的ID单独标记。 不使用线程的概念,当他们在数据库中更新自己的商标.. ANY1请帮助我..在advace 感谢...更新同一个数据库时是否需要使用多线程概念?

回答

3

要多做Mutil-Threading或多个线程在方案中使用它需要一次完成一项任务或同时完成一些任务。您应该考虑自己的场景以及可能在场景中使用多个线程。如果您认为有一些任务可以分为两个独立的任务并且可以并行运行,那么可以使用多线程来获得性能改进。同样,如果你认为有一些任务很繁重,需要花费很多时间,你可以将该任务移动到Background Thread,并使用主线程并行处理一些其他任务。这一切都取决于你的情况。

现在来到你的情况下,如果它是一个Windows窗体应用程序很可能会出现只有一个这个应用程序的用户在同一时间谁将会通过用户界面进行交互。如果这个假设是正确的,我不认为你会需要多线程。如果用户正在做一些投入彻底UI和他点击保存按钮,最后才能保存数据库信息,你不需要多线程单一的UI线程就足以做到这一点

0

不,这是没有必要的。每个用户将从数据库连接池获得一个连接,并且这些连接同时工作,并且不需要并行编程。

0

如果您更新来自不同线程的数据库,也不会损坏。这与普通的C#不同,您需要应用锁来保护对象。您可能被要求使用事务来确保您的数据库更新不会在更高级别上互相干扰。简而言之,如果您在多个表中编辑数据库,或者数据库的更改取决于数据库内容(如添加来自客户的订单),事务将阻止您为已删除的客户添加订单。

0

您需要使用非UI线程的任何数据库的交互,否则UI可能会停止响应。例如。如果你从UI线程执行一个长查询(或者你的连接被中断,或者数据库被大量使用或者任何可能出错的东西 - 会出错),那么UI线程会被阻塞,直到收到完整的响应。

在有多个用户,可以在数据库中更新同一数据的情况下,可能需要引入交易,以确保正确的控制和数据流 - 酸。