我目前被分配了一个几年前用 C# 实现的项目。它由框架和一些 excel 文件提取组成,但问题是这个项目非常损坏/过时,我必须更改一些功能并添加一些新功能。
有一些库在.NET framework 3.0之后才支持,我需要在新功能中使用,而当前项目构建的框架是2.0或更低,因此更改框架会引发一些线程安全问题。
例如,在设计文件代码和后端代码这两个部分类之间,试图更改一个标签的值会引发一个错误,指出我无法编辑目前正在使用的东西......我将代表用于其中一个标签,它工作正常..然后另一个文本框引发了另一个错误.. 那么有没有一个选项来封装整个事情并将线程安全应用于整个代码,而不必遵循发生错误的每一行?
从评论编辑
例外:
Exception while Saving Links. Exception: System.InvalidOperationException: Cross-thread operation not valid: Control 'picLinkUBKCross' accessed from a thread other than the thread it was created on.
注定失败的代码
this.picLinkUBKCross.Image = ((System.Drawing.Image) resources.GetObject("picLinkUBKCross.Image")));
this.picLinkUBKCross.Location = new System.Drawing.Point(367, 57);
this.picLinkUBKCross.Name = "picLinkUBKCross";
this.picLinkUBKCross.Size = new System.Drawing.Size(56, 35);
this.picLinkUBKCross.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.picLinkUBKCross.TabIndex = 14;
this.picLinkUBKCross.TabStop = false;