有的时候我们会使用多线程的情况,但是我们又需要在工作线程的线程中修改UI控件。这个时候就可能会出现winform假死的状态。
自己首先使用了this.invoke,它可以实现在其他线程中修改主线程中控件的属性;但是效果是进度条确实会变化但是winform会处于假死状态,直至其他线程不再修改主线程中控件的属性才会结束。
之后找了网上不少的说法加上 这一句就可以了 Application.DoEvent();
这里做的事情是多久刷新一次当前进度条的情况
不过需要注意的是Application.DoEvent()这个方法的作用是 将你的应用中尚未触发的windows消息打乱次序、提前触发
这个做法是线程不安全的,请谨慎使用
大佬们如果有更好的方法也请多指点