今天用winform做毕设的时候,又遇到了窗体内处理耗时较长的任务时,窗体假死的问题,不得已又用了多线程,利用委托事件进行回调,修改主线程的数据。当然也能用backgroundworker进行实现,不过也比较麻烦。
明明是一个很简单的问题,最后却多写了上百行代码。winform在最初设计的时候,似乎就只将其分为了两层架构,从项目文件的组织就可以看出来,一个是.cs文件,一个是.designer.cs文件。.designer.cs就相当于view层,.cs文件相当于model和control层的和,这就导致了许多显示和数据处理同步的问题。
不知道微软当初是怎么设计winform的,不过微软似乎有意在WPF中进行改进,引入了databinding技术。感觉好像就是为了优化界面和底层数据的交互。