C#Datagridview在首次使用应用程序生命周期时挂起应用程序

时间:2016-03-17 06:54:11

标签: c# winforms datagridview

我们在C#windows窗体应用程序中遇到了一个无法解释的问题,我们已经使用了多年,并且我们会定期更改功能和错误修复。 问题是我们有一个应用程序冻结,应用程序使用一段时间后很快就会发生。 (我不想说启动,因为它有很多事情,并且永远不会在启动例程中冻结。)

经过多次麻烦拍摄后,我们已将其缩小到第一次使用datagridview对象时,无论是否有数据库参与。即使我们从我们在静态代码中构建的数据显示数据网格视图(作为测试),它将挂起几秒钟非常显着的GUI停止,它确实不同。(应用程序时间的年龄)。 在初始挂起之后,该应用程序会话不会再次发生。你再次进入完全相同的模块,相同的代码没有状态改变,并且它可以快速执行。

该应用程序用于部署到嵌入了写入过滤器的Windows 7的kiosk环境中,因为explorer.exe没有运行而且没有任何其他进程启动,所以很少有进程在运行。 我们只有几种不同的硬件,这是“所有必须是同一类型的系统”。 我们从未在任何仅部署的开发人员计算机上看到问题。 该应用程序的目标是.Net 4.5.2。

大多数Designer(自动)代码看起来像这样,因为VS编写它时,datagridview应该是库存标准。

s#[^']+'([^']+)', '([^']+)'.*
<label for=\"\1\">\2</label>

我们主要通过创建数据表并将其添加为源来使用datgridview。自定义类通常只是数据结构,因此它们不访问DB或任何组合在一起的简单基本类型。

private System.Windows.Forms.DataGridView datagridView;
this.datagridView = new System.Windows.Forms.DataGridView();
((System.ComponentModel.ISupportInitialize)(this.datagridView)).BeginInit();
this.datagridView.AllowUserToAddRows = false;
this.datagridView.AllowUserToDeleteRows = false;
this.datagridView.ColumnHeadersHeightSizeMode = 

System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.datagridView.Location = new System.Drawing.Point(31, 128);
this.datagridView.Name = "datagridView";
this.datagridView.ReadOnly = true;

this.datagridView.RowTemplate.DefaultCellStyle.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.datagridView.Size = new System.Drawing.Size(732, 220);
this.datagridView.TabIndex = 144;

唯一要补充的另一点是,除了我们认为我们疯了之外,要提一下这可能是(我说可能因为我们无法证明它。)我们可能已经完成了一个卷起包在visio环境上汇总实际编码机器上的5。正在使用Visio Studio 2013,但我认为这是抓住的。

有什么想法吗?

提前谢谢。

0 个答案:

没有答案