我正在尝试以下代码:
foreach (var r in _vm.Rules.Take(20)) {
Task.Factory.StartNew(() => {
new SQLRuleSerializer().SaveRule(_vm.SelectedKey, r);
});
}
错误:
事务(进程ID 600)已在另一个进程的锁定资源上死锁,并且已被选择为死锁受害者。重新运行事务。
考虑到我没有任何显式锁,我不确定这到底是怎么死锁的。我猜问题是串行器是代理,即使通过单独的实例也不能并行调用?
请您参考如下方法:
事务(进程ID 600)已在另一个进程的锁定资源上死锁,并且已被选择为死锁受害者。重新运行事务。
死锁来自SQL Server,而不是C#代码。
