WinForm程序调试时,Visual Studio 2013停止工作,重新启动

来源:互联网 发布:回力帆布鞋知乎 编辑:程序博客网 时间:2024/06/13 02:18

今天,在调试WinForm程序的时候,每次单步运行到Json序列化对象语句时,VS就停止工作,重新启动。代码片段如下:

 //2017.10.11 xnn 格式化日期时间DateTime 否则会出现2017-09-29T14:42:10 IsoDateTimeConverter convert = new IsoDateTimeConverter(); convert.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";               (断点处)string json_task = JsonConvert.SerializeObject(task, convert);//任务json串 string json_devices = JsonConvert.SerializeObject(devices_list);//设备信息json串

出现这种问题,以为是电脑中病毒,或者是VS环境被破坏了。结果就修复和重装VS,然而并不能解决问题。后来猜想是不是程序本身的问题。为排除VS环境问题,运行了另外的WinForm程序,其中也有类似以上Json序列化代码语句,结果调试一路畅通,事实证明问题还是应该在程序本身上。
通过反复设断点调试,发现task对象属性DT_FixInfos(是一个DataTable)有数据,大概有十几万条数据。然后就清空了数据表,结果调试通过。

//2017.11.8 xnn 清空数据,或者置为null,否则Json序列化对象是,导致VS停止工作。原因可能DT_FixInfos数据量太大task.DT_FixInfos = null;task.DT_SatelliteInfos = null;//2017.10.11 xnn 格式化日期时间DateTime 否则会出现2017-09-29T14:42:10IsoDateTimeConverter convert = new IsoDateTimeConverter();convert.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";               (断点处)string json_task = JsonConvert.SerializeObject(task, convert);//任务json串string json_devices = JsonConvert.SerializeObject(devices_list);//设备信息json串

正常运行以上代码是没有问题的,不知道是不是task.DT_FixInfos数据量太大,导致程序单步调试到以上断点处VS崩掉。

阅读全文
0 0
原创粉丝点击