执行写入前的日志
写入数据库的情况
只有paymode字段的数据没串行
怎么写入的。是不是有其他逻辑,比如通过flowno更新了数据行什么的,
mssqlserver 数据库可以安装dbForge Event Profiler for SQL Server来监控执行的sql语句是什么
没有代码无法评定,凭经验猜测
1.初级错误,使用了外部公用变量(尤其是静态变量),并且没有加锁
2.。中级错误,在多线程中使用了非线程安全的东西(他跟1其实一样,只是1多数是初级写法,2的基本都在中级写法中出现)
3.高级错误,多线程并行,委托闭包变量穿越。
比如
task xxxx(object x)
{
task.run(()=>{
这个匿名委托直接使用了方法传入的x,如果是并行或者异步状态,当前一个异步操作完成,在取x值会发现他是后面一个值
这就是js等支持闭包写法的语言里著名的闭包自由变量穿越,因为这种情况多数在高级写法里出现,所以我定义为高级错误
});
}
解决方式
object x1=x //在传入委托前,重新使用一个变量接一下,因为方法参数是压栈的,重新分配一个变量避免穿越
task.run
另一种解决方式是,当作上下文参数带参入task
task.factory.startnew(p=>{},x)