如果我去调试 - >不开始调试我的WPF应用程序运行正常,但如果我去调试 - >启动调试那么UI将消失,这将是在调试输出窗口:
程序'[6744] UI.exe:Managed(v4.0.30319)'已退出,代码为-1073740791(0xc0000409)
不会抛出异常或任何异常.为什么会这样?我正在使用Prism库,所以我不确定它是否与此相关.
如果我手动将调试器附加到进程,我可以在没有崩溃的情况下进行调试.
此代码序列化整数数组,然后将其插入到sql表中.它并不像我需要的那么快.我能做得更有效吗?
谢谢!
public void SetItem(long Id, int[] items)
{
using (MemoryStream stream = new MemoryStream())
{
foreach (int d in items)
{
var bin = BitConverter.GetBytes(d); //Serialize
stream.Write(bin, 0, bin.Length);
}
var array = stream.ToArray();
using (SqlCommand cmd = new SqlCommand("INSERT INTO Items(Id, Item, DateCreated) VALUES (@Id, @binaryValue, @dateCreated)", sqlConnection))
{
cmd.Parameters.Add("@binaryValue", SqlDbType.VarBinary, array.Length).Value = array;
cmd.Parameters.Add("@Id", SqlDbType.BigInt).Value = Id;
cmd.Parameters.Add("@dateCreated", SqlDbType.DateTime2).Value = DateTime.Now;
cmd.ExecuteNonQuery();
}
}
}
Run Code Online (Sandbox Code Playgroud) 我希望能够以快速的速度向数据网格添加项目,而不会导致UI延迟.
这是我现在正在做的事情:我正在使用绑定到数据网格的ObservableCollection.
我使用后台线程,只有在从observable集合中插入/删除时,才会循环并调用当前调度程序上的Invoke.调用BeginInvoke会产生不良结果.
我知道在调度员上调用那么多导致延迟,但我不知道还能做什么.我之前使用过背景工作者,但我认为这不适用于我的场景.
我该怎么做才能保持用户界面的响应速度?