多线程保存到数据库

时间:2016-09-27 03:43:53

标签: c#

我已经获得了大量转移,并且我试图使用多个线程来调用此方法。

我尝试使用Paralle类,TaskFactory和其他一些,并且大部分时间需要更多时间,然后没有任何多线程。 我该怎么做才能让它更快地运作?

    public override bool DoInTransfer(Transfer transfer)
    {
        using (var database = new BankAccountsDataContext())
        {
            try
            {
                lock (LockObject)
                {
                    database.BankAccounts.Single(account => account.AccountNumber == transfer.DestinationBankAccount).
                        Money += transfer.Money;

                    database.SubmitChanges();
                }
                return true;
            }
            catch (InvalidOperationException)
            {
                Console.WriteLine("Destination bank account doesn't exist in database");
                return false;
            }
        }
    }

1 个答案:

答案 0 :(得分:-2)

您可能需要的是异步查询,因此它不会阻止进程在此查找

https://msdn.microsoft.com/en-us/data/jj819165.aspx